我已经为按钮和文本框定义了通用主题(少关键,基于类型的样式)。 当我在窗口中创建一个合并这些资源的按钮实例时,样式会正确呈现。但是对于托管在ToolBar中的相同按钮,不应用样式;该样式将恢复为Windows默认值。 知道为什么吗?
P.S:如果我明确地设置了ToolBar中托管的按钮的样式,那么它可以正常工作,但这是我不想做的事情。
这有效:
<ToolBarTray> <ToolBar Band="1" BandIndex="1"> <Button Content="Add" Style="{DynamicResource ResourceKey={x:Type Button}}" /> </ToolBar> </ToolBarTray>
这不起作用:
<ToolBarTray> <ToolBar Band="1" BandIndex="1"> <Button Content="Add" /> </ToolBar> </ToolBarTray>
在这两种情况下,如果按钮位于工具栏外部,则会正确应用样式!
答案 0 :(得分:2)
因此,如果我们查看工具栏的style template,我们会在那里找到。
<Style x:Key="{x:Static ToolBar.ButtonStyleKey}"
BasedOn="{StaticResource ToolBarButtonBaseStyle}"
TargetType="{x:Type Button}" />
使用嵌套在模板中的另一种样式明确定义和覆盖嵌入的Button。
您可以在模板中更改或删除它,也可以在实例级别覆盖它,只需将BasedOn
值更改为指向您自己的样式模板即可。网上还有教程可以为工具栏设置样式以获取更多详细信息。希望这会有所帮助。