Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF-更改MouseLeftButtonDown上的网格背景色_Wpf_Vb.net_Xaml_Background_Grid - Fatal编程技术网

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>