我计划将我的徽标添加到我的wpf项目中。我在我的项目中使用tabControl,因为我想添加我的徽标,我希望向左移动第一个Tab标题,以便我的徽标可以适合(如第二张图所示)。任何人都知道如何移动标题页位置?
我的项目现在:
移动我的标题页后,我的项目将是这样的:
p / s:我是第二张图片,我不会从编码中获取它。
答案 0 :(得分:0)
您可以更改TabControl的模板
1.使用这种风格:http://msdn.microsoft.com/en-us/library/ms754137%28v=vs.85%29.aspx
2.在网格中添加三列
3.将HeaderPanel的Grid.Column设置为“1”
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> //*
<ColumnDefinition Width="Auto"/> //*
<ColumnDefinition Width="*"/> //*
</Grid.ColumnDefinitions> //*
<TabPanel
Name="HeaderPanel"
Grid.Row="0"
Grid.Column="1" //*
Panel.ZIndex="1"
Margin="0,0,4,-1"
IsItemsHost="True"
KeyboardNavigation.TabIndex="1"
Background="Transparent" />
<Border
Name="Border"
Grid.Row="1"
Background="{StaticResource WindowBackgroundBrush}"
BorderBrush="{StaticResource SolidBorderBrush}"
BorderThickness="1"
CornerRadius="2"
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="2" >
<ContentPresenter
Name="PART_SelectedContentHost"
Margin="4"
ContentSource="SelectedContent" />
</Border>
</Grid>
答案 1 :(得分:0)
Ramin的解决方案非常有效。 关于使用该方法的其他几点说明:
首先,您需要向Border添加ColumnSpan
,以便主Tab内容扩展到控件的整个宽度:
<Border Name="Border"
Grid.Row="1" Grid.ColumnSpan="3"
...
其次,这些ColumnDefinitions:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
将居中标签标题。如果您只是想让第一个向右移动足够的徽标或其他东西,那么为第一列定义指定不同的宽度。
我使用这些列定义编写了一个快速示例:
<Grid.ColumnDefinitions>
<!-- the width to shift the first tab rightward (i.e., to make room for a logo)-->
<ColumnDefinition Width="87"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/> <!-- any extra space goes on the right -->
</Grid.ColumnDefinitions>
......产生这个: