WPF-更改MouseLeftButtonDown上的网格背景色
我有一个WPF-更改MouseLeftButtonDown上的网格背景色,wpf,vb.net,xaml,background,grid,Wpf,Vb.net,Xaml,Background,Grid,我有一个网格,我基本上用它作为一个按钮,当鼠标按钮按下时,我需要将背景色渐变改为另一个渐变。释放鼠标按钮后,将其更改回原始颜色。此外,我还需要执行一些操作。我试图在代码隐藏中实现这一点,但也许这可以在xaml中实现?我打算这样做,因为定制一个按钮的外观和感觉,我需要被证明是更困难的。我该怎么办 XAML: 实现这一点有几种方法 使用样式和视觉状态。问题:执行命令时会脏兮兮的 将行为添加到网格。分配鼠标事件并在代码中更改背景。此外,还可以执行命令 使用触发器更改背景。使用MVVM Light执
网格
,我基本上用它作为一个按钮,当鼠标按钮按下时,我需要将背景色渐变改为另一个渐变。释放鼠标按钮后,将其更改回原始颜色。此外,我还需要执行一些操作。我试图在代码隐藏中实现这一点,但也许这可以在xaml中实现?我打算这样做,因为定制一个按钮的外观和感觉,我需要被证明是更困难的。我该怎么办
XAML:
实现这一点有几种方法
样式和视觉状态。问题:执行命令时会脏兮兮的
行为
添加到网格
。分配鼠标事件并在代码中更改背景。此外,还可以执行命令触发器
更改背景。使用MVVM Light执行命令
<DockPanel LastChildFill="True" Width="40" Height="40" Margin="22,20,22,5">
<Border BorderThickness="0,1,0,0" DockPanel.Dock="Top" BorderBrush ="#747474" />
<Border BorderThickness="1,0,0,0" DockPanel.Dock="Left">
<Border.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#747474" Offset="0"/>
<GradientStop Color="#464648" Offset="1"/>
</LinearGradientBrush>
</Border.BorderBrush>
</Border>
<Border BorderThickness="0,0,1,0" DockPanel.Dock="Right">
<Border.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#747474" Offset="0"/>
<GradientStop Color="#464648" Offset="1"/>
</LinearGradientBrush>
</Border.BorderBrush>
</Border>
<Border BorderThickness="0,1,0,0" DockPanel.Dock="Bottom" BorderBrush ="#464648" />
<Grid Width="38" Height="38">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#585858" Offset="0"/>
<GradientStop Color="#464648" Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<Image HorizontalAlignment="Center" VerticalAlignment="Center" Source="/common/printer_20.png" Stretch="None" />
</Grid>