【问题标题】:Override general Button style覆盖常规按钮样式
【发布时间】:2010-06-24 09:32:42
【问题描述】:

我们在 default.xaml 中有一个通用样式,针对我们应用程序中的所有按钮。有没有办法覆盖这种样式,并基于默认按钮创建一个新按钮?

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    如果您想继承任何现有样式,请使用 BasedOn

    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}"   x:Key="RedTextBasedOnButton">  <Setter Property="Foreground" Value="Red" /> </Style>
    

    这将继承默认样式,新的前景属性将应用于新样式

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以像这样更改按钮的模板

      <Style x:Key="{x:Type Button}" TargetType="Button">
      <Setter Property="Template">
      <Setter.Value>
      <ControlTemplate TargetType="Button">
      <Border Padding="10,5,10,5" BorderBrush="Green" BorderThickness="1" CornerRadius="5" Background="#EFEFEF">
        <TextBlock Text="{TemplateBinding Content}" />
      </Border>
      </ControlTemplate>
      </Style>
      

      【讨论】:

        【解决方案3】:

        类 Style 具有属性 BasedOn 和接受 Style 参数的构造函数,该参数定义了要基于的样式。

        Style boldStyle = new Style(typeof(Button), generalButtonStyle);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-06-19
          • 2021-05-11
          • 2016-06-14
          • 2020-06-28
          • 2011-09-06
          • 2021-01-23
          • 2011-05-28
          相关资源
          最近更新 更多