wpf プロジェクトにロゴを追加する予定です。プロジェクトで tabControl を使用しています。ロゴを追加したいので、最初のタブ ヘッダーを左に移動して、ロゴが収まるようにします (2 番目の画像に示すように)。タブヘッダーの位置を移動する方法を知っている人はいますか?
私のプロジェクトは今:
タブ ヘッダーを移動すると、プロジェクトは次のようになります。
p/s: 2 番目の画像をフォト ショップで作成しました。コーディングから作成したわけではありません。
wpf プロジェクトにロゴを追加する予定です。プロジェクトで tabControl を使用しています。ロゴを追加したいので、最初のタブ ヘッダーを左に移動して、ロゴが収まるようにします (2 番目の画像に示すように)。タブヘッダーの位置を移動する方法を知っている人はいますか?
私のプロジェクトは今:
タブ ヘッダーを移動すると、プロジェクトは次のようになります。
p/s: 2 番目の画像をフォト ショップで作成しました。コーディングから作成したわけではありません。
ラミンのソリューションはかなりうまく機能します。 そのアプローチの使用に関するいくつかの追加の注意事項:
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>
...これを作成するには:
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>