最近,我正在做一个聊天的wpf应用程序。我想改变边界刷的颜色时,鼠标在边界。但是,我的代码是不工作,因为边距或填充设置.
示例代码如下:
MainWindow.xaml
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<TextBlock Text="Test" Name="testBlock"/>
<Border Name="test" BorderThickness="1" Width="300" Height="200">
<TextBlock Text="Test1" Margin="30"/>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="Red"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="BorderBrush" Value="Yellow"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</Window>
MainWindow.xaml.cs
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
我想改变边界刷时鼠标在边界。如何使工作良好?
1条答案
按热度按时间tct7dpnv1#
鼠标悬停事件的工作原理是检测鼠标是否悬停在控件的呈现像素上。这样做的好处是,如果你制作了一个带边框的圆形按钮,你只能在圆形部分点击它,而不能在圆形部分之外点击它。这是因为边界外的颜色是“null”。通过主动将其设置为透明,它将被渲染,从而能够触发鼠标悬停事件。
这将工作: