ヘッダーがそのサイズを考慮できるように、sのヘッダーのUIElement
右側に何か(カスタム)を配置する方法はありますか?TabItem
彼らのためのデータテンプレートがあるべきだと思いますが、何を読むべきか、それをグーグルに問い合わせる方法がわかりません。
ヘッダーがそのサイズを考慮できるように、sのヘッダーのUIElement
右側に何か(カスタム)を配置する方法はありますか?TabItem
彼らのためのデータテンプレートがあるべきだと思いますが、何を読むべきか、それをグーグルに問い合わせる方法がわかりません。
その場所にコンテンツを配置する簡単な方法はありませんが、方法はあります。ControlTemplate
これを行うには、のデフォルトをオーバーライドする必要がありますTabControl
。
ほとんどのシステムテーマは、TabPanel
(タブがある場所)とタブの内容を次のGrid
ように配置します。
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local"
SnapsToDevicePixels="true"
ClipToBounds="true">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="ColumnDefinition0"/>
<ColumnDefinition x:Name="ColumnDefinition1"
Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="RowDefinition0"
Height="Auto"/>
<RowDefinition x:Name="RowDefinition1"
Height="*"/>
</Grid.RowDefinitions>
<TabPanel x:Name="HeaderPanel"
Panel.ZIndex ="1"
KeyboardNavigation.TabIndex="1"
Grid.Column="0"
Grid.Row="0"
Margin="2,2,2,0"
IsItemsHost="true"/>
<Border x:Name="ContentPanel"
BorderThickness="0,0,1,1"
BorderBrush="#D0CEBF"
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="2"
Grid.Column="0" Grid.ColumnSpan="2"
Grid.Row="1">
...
...
...
</Border>
</Grid>
...
</ControlTemplate>
したがって、別のContentControlをグリッドに追加して、カスタムの添付プロパティにバインドすることができます。デフォルトのControlTemplatesには、特にオーバーフロー処理を制御するトリガーが多数あることに注意してください。追加のUI要素がそれを妨げないようにする必要があります。
ただし、TabControlの向きやオーバーフローに対処する必要がない場合は、このようなものをかなり迅速に取得できるはずです。
赤い境界線とTextBlockを持つ3つのTabItemshttp://img35.imageshack.us/img35/3237/tabpanelexample.png
幸運を!