我想更改某些WPF标签页眉的样式。除了这三件事外,我想保留标签页眉的所有原始样式-


增加页眉的高度
使每个标题的高度相同。通常,选定的选项卡具有更高的高度,我需要选定的和未选定的选项卡的高度都相同。
在每个标题的文本上方添加图片


这是我要做什么的前后图像-



有人知道怎么做吗?

最佳答案

在这里,您可以用漂亮的图像替换“堆栈”面板。

更新1-为了在填充选项卡时消除调整大小的效果,您需要更改TabItem样式(标题模板太轻了)。只需获取一个StyleSnooper(http://blog.wpfwonderland.com/2007/01/02/wpf-tools-stylesnooper/),即可使用VS2010将其打开并重新编译为.NET4,然后启动,导航到TabItem并搜索:



<Setter Property="FrameworkElement.Margin">
                                        <Setter.Value>
                                            <Thickness>
                                                2,2,2,2</Thickness>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="FrameworkElement.Margin" TargetName="Content">
                                        <Setter.Value>
                                            <Thickness>
                                                2,2,2,2</Thickness>
                                        </Setter.Value>


                                        

边距是您要更改以修复2的值。然后只需将修改后的版本放入资源中,以便应用程序可以将其提取。该样式包含许多您可以调整的便捷内容。



<Window x:Class="Immutables.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>

        <TabControl TabStripPlacement="Left" x:Name="AreasTabControl" Margin="1">
            <TabItem x:Name="AttributesTab">
                <TabItem.HeaderTemplate>
                    <DataTemplate>
                        <Grid Width="100" Height="40">

                            <Border BorderThickness="1" BorderBrush="Gray" HorizontalAlignment="Left" VerticalAlignment="Top">
                                <StackPanel Orientation="Horizontal">
                                    <Rectangle VerticalAlignment="Top"
                                Width="5" Height="5" Fill="White" />
                                    <Rectangle  VerticalAlignment="Top"
                                Width="5" Height="5" Fill="Blue" />
                                    <Rectangle VerticalAlignment="Top"
                                Width="5" Height="5" Fill="Red" />
                                </StackPanel>
                            </Border>


                            <TextBlock Margin="0,20,0,0">Go Russia!</TextBlock>
                        </Grid>
                    </DataTemplate>
                </TabItem.HeaderTemplate>

            </TabItem>
        </TabControl>
    </Grid>
</Window>

08-25 17:58