繁体   English   中英

WPF 覆盖样式值

[英]WPF Override Style Value

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

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

从 Snoop 看到这个 output 显示我需要更改的属性:链接到图像

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM