TabControl/TabPanel/TabItem的WPF样式

Jer*_*oen 8 wpf xaml tabcontrol tabpanel

这是关于WPF TabControl,TabItem和TabPanel的新手问题.在StackOVF上有一个相关的问题,我在我的应用程序中愉快地使用了答案.这是答案的链接,以及代码片段:

WPF:TabControl中的Center TabItems

<TabControl>
    <TabControl.Resources>
        <Style TargetType="{x:Type TabPanel}">
            <Setter Property="HorizontalAlignment" Value="Center" />
        </Style>
    </TabControl.Resources>

    <TabItem Header="Test 1" />
    <TabItem Header="Test 2" />
    <TabItem Header="Test 3" />
    <TabItem Header="Test 4" />
</TabControl>
Run Code Online (Sandbox Code Playgroud)

虽然这很棒,但我很乐意将资源和样式的东西移到更好的位置(样式表等).我的第一次尝试是将<TabControl.Resources>标签移动到,<Window.Resources>但这不起作用.我尝试了几种变化但无法使其工作.这是我有点期望尝试的一个例子:

<!-- Doesn't work as expected: -->
<Window.Resources>
    <Style TargetType="{x:Type TabPanel}">
        <Setter Property="HorizontalAlignment" Value="Center" />
    </Style>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

搜索网络和msdn并没有帮助我解决我的问题,而是给我留下了第二个(相关的)问题:实际上一个TabPanel,它与TabControl有什么关系?

任何帮助和提示将不胜感激.

(编辑:在最后一个例子中评论说代码对我不起作用.)

NVM*_*NVM 11

替代文字

TabControl使用一个专门的TabPanel类,而不是像StackPanel那样的通用面板,因为如果你搞乱了TabControl,你会发现面板做了很多通用面板不做的事情.一种是调整多行中的选项卡标题项.另一个是项目行将重新排列,以便选定的tabitem标题始终位于最后一行.我想它可能会做得更多

我很想知道为什么将样式放在窗口资源部分不起作用.我最初的反应是它应该工作,直到我尝试它.我将此作为答案添加,因为我不会让我在评论中添加图像.