我有自定义按钮控件FancyButton(显然是为了重用而创建),如下所示,后面还有一些代码(主要是依赖属性):
<Button x:Class="Views.Controls.FancyButton"
...... >
<Button.ContentTemplate>
<DataTemplate>
....
</DataTemplate>
</Button.ContentTemplate>
</Button>
下面,使用这个控件,触发器应该开始在鼠标按下时切换弹出属性,而不是它我面临的异常是
&#39;弹出&#39;在名称范围内找不到名称 &#39; Views.Controls.FancyButton&#39;
<controls:FancyButton x:Name="ChooseButton" ServerConnection="{Binding CurrentServer}">
<Button.Triggers>
<EventTrigger SourceName="ChooseButton" RoutedEvent="UIElement.PreviewMouseLeftButtonUp">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="Popup" Storyboard.TargetProperty="(IsOpen)">
<DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</controls:FancyButton >
<Popup Placement="Bottom" Name="Popup">
..........
</Popup>
以前的解决方案 - 直接使用Button控件 - 按预期工作但我有一个XAML重复。
它有什么变化以及如何使其发挥作用?
答案 0 :(得分:1)
解决!
我没有使用Storyboard.TargetName附加属性,而是使用了Storyboard.Target和正确的绑定,如下所示:
<Button.Triggers>
<EventTrigger SourceName="ChooseButton" RoutedEvent="UIElement.PreviewMouseLeftButtonUp">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.Target="{Binding ElementName=popup1}" Storyboard.TargetProperty="(IsOpen)">
<DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
干杯