我在c#中有一个按钮,我在其中添加了渐变画笔,以便在按下按钮时创建凹陷效果。它的工作原理是按下时增加边框厚度(左上角和顶部)。我无法让它发挥作用。有什么我想念的吗?
我的XAML:
<menu:HomeButton x:Name="BtnHome" MouseDown="BtnHome_MouseDown" >
<menu:HomeButton.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</menu:HomeButton.Background>
我为这个按钮创建了一个事件处理程序(在c#中):
private void BtnHome_MouseDown(object sender, MouseButtonEventArgs e)
{
BtnHome.BorderThickness = new Thickness(5, 5, 5, 5);
}
所以当我按下按钮时,没有任何反应。我错过了什么?
答案 0 :(得分:0)
当WPF决定重绘时,与MouseDown路由事件的路由顺序/策略相比可能有些怪癖。使用常规按钮(我假设HomeButton是标准WPF按钮的推导)我无法改变MouseDown上的边框粗细,如您所示。但是,如果我改为使用PreviewMouseDown事件,它就可以工作。
<Button x:Name="TheButton" PreviewMouseDown="Button_PreviewMouseDown">YOOOO</Button>
private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
TheButton.BorderThickness = new Thickness(5, 5, 5, 5);
}