0

我计划将我的徽标添加到我的 wpf 项目中。我在我的项目中使用 tabControl 并且由于我想添加我的徽标,我希望将第一个选项卡标题向左移动,以便我的徽标可以适合(如第二张图片所示)。任何人都知道如何移动标签页眉位置?

我现在的项目:

在此处输入图像描述

移动我的选项卡标题后,我的项目将是这样的:

在此处输入图像描述

p / s:我对第二张图像进行了Photoshop处理,我不是从编码中制作出来的。

4

2 回答 2

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>
于 2012-12-17T08:07:53.973 回答
0

Ramin 的解决方案效果很好。 关于使用该方法的一些附加说明

首先,您需要向ColumnSpanBorder 添加一个,以便主 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> 

...产生这个:

在此处输入图像描述

于 2013-01-22T22:20:33.580 回答