1

我有五个这样的按钮:

            <Button Name="btnAssets" Grid.Row="1" Margin="7,1,7,1" Click="btnDrawer_Click" >
                <StackPanel >
                    <StackPanel.Background>
                        <ImageBrush ImageSource="/Test;component/Images/DrawerSlid.png" />
                    </StackPanel.Background>
                    <Image Margin="0,0,0,0" Source="/Test;component/Images/DrawerUpper2.png" />
                    <TextBlock Margin="0,10,0,10" TextWrapping="WrapWithOverflow" TextAlignment="Center">Assets</TextBlock>
                    <Image Margin="0,0,0,0" Source="/Test;component/Images/DrawerSlid2.png" />
                </StackPanel>                    
            </Button>

这些按钮的样式触发器如下:

    <Style TargetType="StackPanel">
        <Setter Property= "TextBlock.Foreground" Value="White"/>
        <Setter Property= "TextBlock.FontSize" Value="12"/>
        <Style.Triggers>
           <Trigger Property ="IsMouseOver" Value="True">
               <Setter Property= "TextBlock.Foreground" Value="Yellow"/>
               <Setter Property= "TextBlock.FontSize" Value="13"/>
            </Trigger>
        </Style.Triggers>                       
    </Style>

这些代码工作正常。现在我希望当用户点击任何按钮时,它的前景色和字体大小应该改变。但我找不到任何简单的解决方案。如何通过 xaml 或通过 c# 做到这一点?

4

2 回答 2

1

您可以在按钮样式模板中使用触发器“IsPressed”。看到这个http://geekswithblogs.net/cskardon/archive/2008/06/20/roundedbutton-button-style-wpf.aspx

于 2012-06-14T08:11:01.243 回答
0

按钮在 WPF 中具有不同的构造方式,因此需要更多的工作来让按钮按您的意愿工作。步骤通常是:

  1. 派生自 Decorator 基类,为您自己的按钮创建模板
  2. 为 XAML 中的按钮创建自己的控件模板
  3. 将按钮连接到您的自定义模板!

这里给出了一篇很好的文章和例子:http: //www.wiredprairie.us/journal/2006/09/wpf_decorators_build_your_own.html

于 2012-06-14T06:23:33.390 回答