替代样式的特定特性
本文关键字:样式 | 更新日期: 2023-09-27 18:21:26
我正在为TabControl创建一个新样式,其中包括项目的新ItemContainerStyle。新样式运行良好,只是我需要在使用样式时向ItemContainerStyle添加功能。详细地说,这是标题属性
<TabControl x:Name="myTabControl" SelectionChanged="myTabControl_SelectionChanged">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Title}"></Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
这还可以。但它完全覆盖了样式。BasedOn属性会有所帮助,但我无法访问ItemContainerStyle的键,因为它嵌入在TabControls的样式中。如何在不完全覆盖样式的情况下简单地更新样式的属性?
感谢
WPF中的样式与css相比有一些不同。在Wpf中,它们完全脱离了继承,这是关于样式如何工作的基本文档。因此,如果没有为您提供密钥,我认为您在使用BasedOn继承时运气不佳。
但是,Microsoft确实在Visual Studio Blend中提供了一个有用的实用程序。在"对象和时间线"窗口中,右键单击,然后选择"编辑样式",这将为您完成所有繁重的工作。如果你要对样式做很多小的更改,我建议你做一个副本,并给它一个Key,然后使用BasedOn属性来进行你想要的小更改。
我希望这能有所帮助。
您可以基于隐式应用的默认样式:
<Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">