【发布时间】:2010-12-02 10:39:59
【问题描述】:
WPF 选项卡控件的默认行为是将选项卡标题彼此相邻放置,中间没有任何空格。如果我想指定标题之间的间隙怎么办?我必须为此定义一个控制模板吗?我对 WFP 比较陌生,如果有任何帮助,我将不胜感激。
谢谢
【问题讨论】:
标签: wpf header tabcontrol spacing gaps-in-visuals
WPF 选项卡控件的默认行为是将选项卡标题彼此相邻放置,中间没有任何空格。如果我想指定标题之间的间隙怎么办?我必须为此定义一个控制模板吗?我对 WFP 比较陌生,如果有任何帮助,我将不胜感激。
谢谢
【问题讨论】:
标签: wpf header tabcontrol spacing gaps-in-visuals
我相信您需要为 TabItem 定义一个自定义控件模板,甚至可能为 TabControl 定义一个。下面是一个 TabItem 示例,它使用间隔符进行一些分隔。
<Style
x:Key="SpacedTab"
TargetType="{x:Type TabItem}">
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type TabItem}">
<Border
x:Name="Spacer"
Width="Auto"
Height="Auto"
Padding="0 0 5 0"
Margin="0 0 0 0"
BorderBrush="Transparent"
BorderThickness="0">
<Border
x:Name="Border"
MinWidth="150"
Width="Auto"
Height="30"
Background="Gray"
BorderBrush="DarkGray"
BorderThickness="0,0,0,0"
CornerRadius="6,6,0,0"
Cursor="Hand"
VerticalAlignment="Bottom">
<ContentPresenter
x:Name="ContentSite"
TextElement.FontSize="10pt"
TextElement.FontFamily="Arial"
TextElement.Foreground="Black"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="8,3,8,3"
Width="Auto"
Height="Auto" />
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
希望这是朝着正确方向的推动;您仍然需要将其添加为样式资源并从您的 TabControl -> TabItem 引用它。
【讨论】:
在设计器中添加空间很容易。从最右边的选项卡开始,选择要移动的选项卡。然后按住 ctrl 并使用右箭头键将选项卡向右移动。对其余选项卡执行相同操作。然后可以在xaml代码中手动调整margin。
【讨论】: