【问题标题】:BorderThickness doesn't work边框厚度不起作用
【发布时间】:2013-05-20 11:25:41
【问题描述】:

我正在尝试为 XAML 中的按钮创建样式,这是我的代码:

<Window.Resources>
  <Style x:Key="buttons"
         TargetType="Control">
    <Setter Property="Background">
      <Setter.Value>
        <LinearGradientBrush>
          <GradientStop Color="GoldenRod"
                        Offset="0" />
          <GradientStop Color="Gold"
                        Offset="0.10" />
          <GradientStop Color="White"
                        Offset="0.45" />
          <GradientStop Color="Gold"
                        Offset="0.9" />
          <GradientStop Color="GoldenRod"
                        Offset="1" />

        </LinearGradientBrush>
      </Setter.Value>
    </Setter>
    <Setter Property="FontFamily"
            Value="Consolas" />
    <Setter Property="FontSize"
            Value="15" />
    <Setter Property="FontWeight"
            Value="Bold" />
    <Setter Property="BorderThickness"
            Value="5" />
    <Setter Property="Padding"
            Value="0,0" />

  </Style>
</Window.Resources>

除了 BorderThickness 属性外,一切正常 - 无论我放什么值,它都不会改变。我想知道我的代码中缺少什么。

【问题讨论】:

  • 您尝试过 TargetType 按钮吗?

标签: wpf xaml button styles border


【解决方案1】:

在此处查看Button 控件默认模板。

http://msdn.microsoft.com/en-us/library/ms753328%28v=vs.90%29.aspx

如果我们看到 BorderThickness 属性已设置为固定值 1。因此不会反映任何更改。

您需要为此创建一个新的ControlTemplate

【讨论】:

  • 这不是默认模板,而是一个示例,默认模板也取决于系统。但边框粗细硬编码为 1 的事实也适用于 Aero 主题。
  • 最新的 WPF 默认模板位置似乎在这里。 msdn.microsoft.com/en-us/library/ms753328%28v=vs.100%29.aspx
  • 不,标题还指出这些只是示例。关注this page 上的Default WPF Themes 链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
相关资源
最近更新 更多