繁体   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