0

wpf プロジェクトにロゴを追加する予定です。プロジェクトで tabControl を使用しています。ロゴを追加したいので、最初のタブ ヘッダーを左に移動して、ロゴが収まるようにします (2 番目の画像に示すように)。タブヘッダーの位置を移動する方法を知っている人はいますか?

私のプロジェクトは今:

ここに画像の説明を入力

タブ ヘッダーを移動すると、プロジェクトは次のようになります。

ここに画像の説明を入力

p/s: 2 番目の画像をフォト ショップで作成しました。コーディングから作成したわけではありません。

4

2 に答える 2

0

ラミンのソリューションはかなりうまく機能します。 そのアプローチの使用に関するいくつかの追加の注意事項

ColumnSpanまず、メインのタブコンテンツがコントロールの全幅に拡張されるように、境界線にを追加する必要があります。

<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 に答える
0

TabControl のテンプレートを変更する可能性があります

1. 次のスタイルを使用します: http://msdn.microsoft.com/en-us/library/ms754137%28v=vs.85%29.aspx
2. グリッドに 3 つの列を追加します
。 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 に答える