簡體   English   中英

在StoryBoard上設置自定義附加屬性

[英]Set custom attached property on StoryBoard

我有一個故事板,並希望設置附加屬性VisualStateUtility.InitialState。 我嘗試了各種組合,但財產永遠不會得到解決。

我收到以下錯誤: 無法解析TargetProperty(VisualStateUtility.InitialState)

如何在Storyboard上設置自定義附加屬性的值?

<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="(Fully.Qualified.Namespace.VisualStateUtility.InitialState)"  Storyboard.TargetName="ExpanderButton">

    public static string GetInitialState(DependencyObject obj)
    {
        return (string)obj.GetValue(InitialStateProperty);
    }

    public static void SetInitialState(DependencyObject obj, string value)
    {
        obj.SetValue(InitialStateProperty, value);
    }

    // Using a DependencyProperty as the backing store for InitialState.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty InitialStateProperty =
        DependencyProperty.RegisterAttached("InitialState", typeof(string), typeof(VisualStateUtility), new PropertyMetadata(null,OnInitialStatePropertyChanged));

這應該可以解決問題

<ObjectAnimationUsingKeyFrames x:Name="animation" Duration="0" Storyboard.TargetProperty="xmlnsAlias:VisualStateUtility.InitialState"  Storyboard.TargetName="ExpanderButton">

注意如何將名稱添加到動畫中,從目標屬性名稱中刪除括號,然后使用xaml標頭中的xmlns別名作為前綴。

在你的代碼背后,你必須添加這個:

InitializeComponent();
Storyboard.SetTargetProperty(animation, new PropertyPath(Fully.Qualified.Namespace.VisualStateUtility.InitialState));

顯然,最后一步是動畫自定義附加屬性所必需的。 如果你問我,真的很痛苦。

我碰到了這個:

http://forums.silverlight.net/t/182227.aspx

另一位用戶說它不受支持。

Frank Lan寫道:

嗨,這是一個眾所周知的問題。 解決方法似乎是:從代碼而不是xaml動畫自定義附加屬性。 對由此問題造成的任何不便,我們深表歉意。 Frank Lan Microsoft在線社區支持

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM