替代样式的特定特性

本文关键字:样式 | 更新日期: 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}}">