[来自父项的Usercontrol按钮的WPF访问名称

问题描述 投票:0回答:1

我正在尝试在用户控件中单击按钮的click事件时触发情节提要动画。被点击。父级无法识别用户控件中按钮的名称即尝试UserControl.MyButton作为SourceName不起作用。如何访问按钮的名称并在EventTrigger的SourceName中使用这是主窗口的伪代码

      <Window>
          <EventTrigger RoutedEvent="Button.Click" SourceName="???" >
                <BeginStoryboard >
                   -----------------------
                </BeginStoryboard>
            </EventTrigger>

             <UserControl  />
       </Window>

这里是在单独的xaml中定义的用户控件

           <UserControl>
             <Button  x:Name="MyButton" /> 
       </UserControl>
wpf wpf-controls
1个回答
0
投票

实际上,似乎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>
© www.soinside.com 2019 - 2024. All rights reserved.