WPF 鼠标悬停时绘制边框

6
我有一个WPF应用程序,我想要制作一个类似于图像的关闭按钮。 我试图绘制边框或在鼠标悬停时显示边框...但我似乎无法使其工作。 我已经尝试了6种不同的方法...使用图像、带有图像的边框、画刷等。
目前我正在使用以下代码:
<Canvas Name="cMin" Height="16" Width="16"
        Grid.Column="1" Grid.Row="1">
    <Canvas.Background>
        <ImageBrush ImageSource="_.png" Stretch="None" />
    </Canvas.Background>
    <Border BorderBrush="Transparent" BorderThickness="1" Background="Transparent" 
            CornerRadius="0" Height="18" Width="18">
         <Border.Style>
            <Style TargetType="Border">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="BorderBrush" Value="LightBlue" />
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="False">
                        <Setter Property="BorderBrush" Value="Transparent" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
    </Border>
</Canvas>

非常感谢您的帮助!

如果有任何问题,欢迎随时联系我们。

1个回答

12
问题在于您的本地值覆盖了您的样式触发器中的BorderBrush属性。这篇MSDN文章描述了如何解决有效值的问题。基本上,从Border元素中删除本地值,它就应该正常工作了。如果需要指定属性,则可以在Style中使用Setter进行设置。另外,第二个Trigger是不必要的,因为当属性切换回false时,值将恢复为原始值。
<Border BorderThickness="1" Background="Transparent" 
        CornerRadius="0" Height="18" Width="18">
     <Border.Style>
        <Style TargetType="Border">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="BorderBrush" Value="LightBlue" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
</Border>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接