在controltemplate中将元素指定为动画目标
我正在尝试为ContentTemplate中的一个控件设置一个事件触发器,当我将故事板TargetName设置为“ContentPopup”时,我正在使用一个Storyboard和一个DoubleAnimation与DoubleAnimationUsingKeyFrames嵌套,这是我在下面持有的Grid,但是我收到一个错误告诉我:
名称“ContentPopup”不在命名空间“System.Windows.Controls.Grid”中。
控件模板上的动画代码是:
... ...
我需要动画的网格代码是:
...
MSDN表示,要使对象可定位,需要执行以下操作
网格是一个FrameworkElement我想让动画在我使用这个控件模板在我的主窗口上召唤的每一个控件上运行,它们很多,所以我需要使用模板。 问题是:
有没有办法将元素指定为模板中的目标?
所以我找到了正确的方法,即使grid是一个FrameworkElement,你无法从控件模板访问它,所以你需要提供一些绑定或XAML引用才能工作,所以使用完全相同的代码而不是使用带有值的Storyboard.Target使用Storyboard.TargetName属性:
Storyboard.Target="{Binding ElementName=ContentPopup}"
或者:
Storyboard.Target="{x:Reference Name=ContentPopup}"
它对我有用