TabItem
'헤더의 오른쪽에 뭔가 (사용자 정의 UIElement
)를 배치하여 헤더의 크기를 고려할 수 있습니까?UIElements aside Tab Headers
데이터 템플릿이 있어야한다고 생각하지만 읽을 내용이나 Google에 쿼리하는 방법을 알지 못합니다.
alt text http://trotsenko.com.ua/files/sample.png
TabItem
'헤더의 오른쪽에 뭔가 (사용자 정의 UIElement
)를 배치하여 헤더의 크기를 고려할 수 있습니까?UIElements aside Tab Headers
데이터 템플릿이 있어야한다고 생각하지만 읽을 내용이나 Google에 쿼리하는 방법을 알지 못합니다.
alt text http://trotsenko.com.ua/files/sample.png
해당 위치에 내용을 배치 할 수있는 쉬운 방법이 없습니다,하지만 방법이있다. 이렇게하려면 TabControl
의 기본값 인 ControlTemplate
을 재정의해야합니다.
대부분의 시스템 테마는 Grid
과 같이에서 (탭이 있습니다)이 TabPanel
및 탭 내용을 넣어 : 그래서 당신은 그리드에 다른 ContentControl을 추가 할 수
<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>
과는 결합이 사용자 지정 연결 속성. 기본 ControlTemplates에는 오버 플로우 처리를 제어하는 많은 트리거가 있으며 추가 UI 요소가이를 방해하지 않는지 확인해야합니다.
당신은 당신을 TabControl 방향 또는 오버 플로우 처리하지 않는 경우,하지만, 상당히 빨리 이런 식으로 뭔가를 얻을 수 있어야합니다 :
행운을 빕니다!