【问题标题】:WPF Override Style ValueWPF 覆盖样式值
【发布时间】:2020-07-26 18:03:34
【问题描述】:

我正在为 WPF 使用 MaterialDesignInXaml,它提供了第 3 方控件和样式。我需要通过更改一个属性来编辑其中一种样式。

我正在使用一个 Expander 控件,它有一个创建一堆子控件的模板。我发现子“边框”控件(4 层深)具有我需要设置为零的属性(填充)。

查看 Snoop 的输出,显示我需要更改的属性: Link to image

我的问题是我该怎么做?我尝试如下扩展控件使用的样式,但它没有改变任何东西,所以我认为我做错了什么?

<Style TargetType="{x:Type Expander}" 
         x:Key="MaterialDesignExpanderHeadless" 
         BasedOn="{StaticResource MaterialDesignExpander}">
    <Style.Resources>
        <Style TargetType="{x:Type Border}">
            <Setter Property="Padding" Value="0"></Setter>
        </Style>
    </Style.Resources>
</Style>

我可以使用这样的风格。我知道这是肯定的:

<Expander Header="Header Content" Style="{StaticResource MaterialDesignExpanderHeadless}">
    Some Content
</Expander>

【问题讨论】:

  • 尝试添加您正在使用该样式的代码。也许是“原样”与“期望”的屏幕截图。这样会更容易提供帮助。

标签: c# .net wpf xaml


【解决方案1】:

你是对的,这种方法应该有效。其他东西正在设置边框的填充。

Snoop 告诉您填充是由父模板定义的,它可能是 HeaderSite (ToggleButton)。 您可以尝试扩展 ToggleButton 样式(BasedOn)或在本地重新定义。

【讨论】:

  • 绝对准确!这是我能够更改的 ToggleButton 样式。非常感谢!!!
猜你喜欢
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多