0

我为我的应用程序中的所有 TabControl 创建了一个控件模板。该模板将 TabPanel 放置在选项卡项的主要内容的左侧。

   <Style TargetType="{x:Type TabControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type TabControl}">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="100" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <TabPanel Grid.Column="0"
                              Panel.ZIndex="1"
                              Margin="0,0,0,0"
                              IsItemsHost="True"
                              Background="Transparent" />
                    <Border Grid.Column="1"
                            BorderBrush="Black"
                            BorderThickness="1"
                            CornerRadius="0,12,12,12">
                        <Border.Background>
                            <SolidColorBrush Color="Green" />
                        </Border.Background>
                        <ContentPresenter ContentSource="SelectedContent" />
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

这最初是我希望我的选项卡控件看起来的样子。但是当我将 TabStripPlacement 属性设置为 Top 时,它仍然停留在左侧。有没有办法在控件模板中定义根据 TabStrip 属性调整 TabPanel 的位置?提前致谢。

4

1 回答 1

2

你需要在你的风格中使用触发器来响应TabStripPlacement属性的变化。

这个stackoverflow帖子提供了一个例子。

于 2012-08-04T01:59:05.830 回答