【问题标题】:How to get MouseOver trigger event alter child items如何获取 MouseOver 触发事件更改子项
【发布时间】:2013-05-01 14:34:07
【问题描述】:

我有一个MouseOver 边框事件。在那个边界内(再往下)我有几个带有RotateTransforms 的边界......我如何才能在顶级Border 悬停事件中改变他们的变换? (即改变他们的轮换?)

<Border.Style>
    <Style>
        <Style.Triggers>
            <Trigger Property="Border.IsMouseOver" Value="True">
                <Setter Property="Border.Background" Value="#f0f0f0" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Border.Style>

在树的下方,但在这个边界内是

<Border Padding="3" Width="73" Height="57" Background="White" RenderTransformOrigin="0.5, 0.5">
    <Border.Effect>
        <DropShadowEffect BlurRadius="4" Direction="0" ShadowDepth="0" Color="#aa505050" />
    </Border.Effect>
    <Border.RenderTransform>
         <RotateTransform Angle="-2" />
    </Border.RenderTransform>
</Border>

【问题讨论】:

  • 您可以尝试使用 FindAncestor 或 ElementName 绑定的 Inside-Border-Style DataTrigger 来获取 Outside-Border-MouseOver。
  • 我不知道该怎么做,哈哈,你介意写一点代码给我看吗?谢谢
  • 您是否尝试过 ChangePropertyAction 与指定 TargetObjectMouseOver 触发器? ;) msdn.microsoft.com/en-us/library/vstudio/dn195723.aspx
  • @LPL 设法让它实际工作,如果你想把它作为答案并且我会接受 - 谢谢
  • 感谢您的报价。我不是在我的办公桌前分享一个无错误的样品。随时将您的工作代码添加到我的答案中。 ;)

标签: wpf xaml mouseover


【解决方案1】:

您可以在内边框Style 中使用DataTriggerFindAncestorElementName 绑定来获取外边框的IsMouseOver

<Border.Style>
    <Style TargetType="Border">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <RotateTransform Angle="3"/>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=IsMouseOver}" Value="True">
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <RotateTransform Angle="6"/>
                    </Setter.Value>
                </Setter>
            </DataTrigger >
        </Style.Triggers>
    </Style>
</Border.Style>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多