0

我为视图框做了一个触发器,当鼠标悬停在视图框上时,内容会发生变化。

这行得通,但是因为视图框的内容很小,我希望在视图框周围有一个边框,它也会触发鼠标悬停事件。

<Viewbox Width="50" x:Name="ActionIconBox1" Height="40.5">
    <ContentControl>
        <ContentControl.Style>
            <Style TargetType="{x:Type ContentControl}">
                    <Setter Property="Content" Value="{StaticResource action_message}"/>
                    <Style.Triggers>
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Viewbox,AncestorLevel=1}, Path=IsMouseOver}" Value="True" >
                                <Setter Property="Content" Value="{StaticResource action_message_focus}"/>
                            </DataTrigger>
                    </Style.Triggers>
            </Style>
        </ContentControl.Style>
    </ContentControl>
</Viewbox>

这仅在鼠标在 contentcontrol 上时有效,在鼠标进入 Viewbox 时无效。

资源是画布

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="appbar_message" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="39.75" Canvas.Left="19" Canvas.Top="22" Stretch="Fill" Fill="#FF1BA1E2" Data="F1 M 33,51L 36.4167,61.75L 24,51L 19,51L 19,22L 57,22L 57,51L 33,51 Z "/> </Canvas>

为什么绑定不起作用?

4

2 回答 2

1

你把它Trigger放在ContentControl所以当然它只适用于那个。只需将 的大小设置为与您所说的删除“边框”ContentControl相同的大小即可。ViewBox

于 2013-09-09T13:31:29.913 回答
1

只需将其放入边框并更改 AncestorType。

    <Viewbox Width="50" x:Name="ActionIconBox1" Height="40.5" >
        <Border BorderThickness="2" BorderBrush="Red">
            <ContentControl>
                <ContentControl.Style>
                    <Style TargetType="{x:Type ContentControl}">
                        <Setter Property="Content" Value="{StaticResource action_message}"/>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Border,AncestorLevel=1}, Path=IsMouseOver}" Value="True" >
                                <Setter Property="Content" Value="{StaticResource action_message_focus}"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ContentControl.Style>
            </ContentControl>
        </Border>
    </Viewbox>
于 2013-09-09T13:44:42.407 回答