4

ストーリーボードがあり、添付プロパティVisualStateUtility.InitialStateを設定したいと思います。さまざまな組み合わせを試しましたが、プロパティが解決されません。

次のエラーが発生します:TargetProperty(VisualStateUtility.InitialState)を解決できません

ストーリーボードでカスタム添付プロパティの値を設定するにはどうすればよいですか?

<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));
4

2 に答える 2

1

これでうまくいくはずです

<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));

どうやら、この最後の手順は、カスタムの添付プロパティをアニメーション化するために必要です。あなたが私に尋ねるなら、本当に苦痛です。

于 2012-01-17T21:20:35.030 に答える
0

私はこれに遭遇しました:

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

別のユーザーがサポートされていないと言っています。

フランク・ランは次のように書いています。

こんにちは、これは既知の問題です。回避策は、xaml ではなくコードからカスタム添付プロパティをアニメーション化することです。ご不便をおかけして申し訳ございません。Frank Lan マイクロソフト オンライン コミュニティ サポート

于 2011-10-03T22:37:51.823 に答える