首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅限WPF TabItem标题样式

问仅限WPF TabItem标题样式
EN

Stack Overflow用户
提问于 2017-01-07 02:27:09
回答 2查看 4.6K关注 0票数 2

我正在编写一个WPF应用程序,并尝试样式的TabItem头只显示一个边框与背景颜色变化时选择。问题是,当我添加该样式时,它会在TabItem中弄乱我的TextBlock项的样式。我不是WPF / XAML专家。下面是我在TabControl中使用的样式。我也在使用MahApps metro样式。任何想法都将不胜感激。

代码语言:javascript
复制
            <TabControl.Resources>
                <Style TargetType="TabItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="TabItem">
                                <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="4,4,0,0" Margin="2,0">
                                    <ContentPresenter x:Name="ContentSite"
                                    VerticalAlignment="Center"
                                    HorizontalAlignment="Center"
                                    ContentSource="Header"
                                    Margin="10,2"/>
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter TargetName="Border" Property="Background" Value="{DynamicResource AccentColorBrush}" />
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.Resources>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-07 04:02:54

当您为WPF控件编写新样式时,如果您没有完全重置所有内容,最好使其继承现有的隐式样式。这里面可能还有很多你不想失去的东西,看起来就是这种情况。尝试将BasedOn属性设置为隐式TabItem样式:

代码语言:javascript
复制
<Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">

看看这有没有帮助。

在WPF中,指runtime Type of a control is conventionally used as the resource key for the style that's applied to it by default。

票数 1
EN

Stack Overflow用户

发布于 2017-04-04 19:45:21

您还可以在外部定义样式。此样式将帮助您将标题内容换行,并将标题内容居中对齐。

代码语言:javascript
复制
<Style x:Key="newTabItemStyle" TargetType="{x:Type TabItem}">
  <setter property="MaxWidth" value="150"/>
  <Setter Property="HeaderTemplate">
    <Setter.Value>
      <DataTemplate >
        <TextBlock  TextWrapping="Wrap" Text="{Binding}"  TextAlignment="Center"/>
      </DataTemplate>
   </Setter.Value>
</Setter>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41511983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档