我正在尝试在用户控件中单击按钮的click事件时触发情节提要动画。被点击。父级无法识别用户控件中按钮的名称即尝试UserControl.MyButton作为SourceName不起作用。如何访问按钮的名称并在EventTrigger的SourceName中使用这是主窗口的伪代码
<Window>
<EventTrigger RoutedEvent="Button.Click" SourceName="???" >
<BeginStoryboard >
-----------------------
</BeginStoryboard>
</EventTrigger>
<UserControl />
</Window>
这里是在单独的xaml中定义的用户控件
<UserControl>
<Button x:Name="MyButton" />
</UserControl>
实际上,似乎SourceName不必是当前名称范围中的元素。以下代码适用于Button1,而不适用于Button2。在处理事件时,EvenTrigger应该检查原始源名称:
<StackPanel>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="Button1">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="30" Storyboard.TargetName="TextBlock1" Storyboard.TargetProperty="FontSize" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</StackPanel.Triggers>
<TextBlock x:Name="TextBlock1" Text="Text" FontSize="12" />
<local:UserControl1 x:Name="UC" />
</StackPanel>
<UserControl>
<StackPanel>
<Button x:Name="Button1" Content="Click"/>
<Button x:Name="Button2" Content="Click"/>
</StackPanel>
</UserControl>