0

我有一个Grid我基本上用作按钮的按钮,我需要在鼠标按钮按下时将背景色渐变更改为另一个渐变。松开鼠标按钮后,将其更改回原始颜色。此外,我还需要执行一些操作。我正在尝试在后面的代码中完成此操作,但也许这可以在 xaml 中完成?我正在这样做,因为事实证明,为我需要的外观和感觉定制一个按钮更加困难。我该怎么办?

XAML:

<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>

4

1 回答 1

1

您有几种方法可以实现这一目标。

  1. 使用 aStyle和视觉状态。问题:执行命令会很脏。
  2. 在. Behavior_ Grid分配鼠标事件并更改Background代码。此外,您可以执行命令。
  3. 使用 aTrigger更改背景。使用 MVVM Light 执行Command.

你更喜欢哪种方式?

于 2013-05-28T19:12:46.473 回答