Last active
March 19, 2020 13:28
-
-
Save Kinnara/b8a1b7e5bd5d268c029c9c5aac0718a7 to your computer and use it in GitHub Desktop.
CrossFadeTabControlStyle
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Style x:Key="CrossFadeTabControlStyle" | |
TargetType="{x:Type TabControl}" | |
BasedOn="{StaticResource DefaultTabControlStyle}"> | |
<Setter Property="Template"> | |
<Setter.Value> | |
<ControlTemplate TargetType="{x:Type TabControl}"> | |
<Grid | |
x:Name="templateRoot" | |
ClipToBounds="true" | |
KeyboardNavigation.TabNavigation="Local" | |
SnapsToDevicePixels="true"> | |
<Grid.ColumnDefinitions> | |
<ColumnDefinition x:Name="ColumnDefinition0" /> | |
<ColumnDefinition x:Name="ColumnDefinition1" Width="0" /> | |
</Grid.ColumnDefinitions> | |
<Grid.RowDefinitions> | |
<RowDefinition x:Name="RowDefinition0" Height="Auto" /> | |
<RowDefinition x:Name="RowDefinition1" Height="*" /> | |
</Grid.RowDefinitions> | |
<DockPanel | |
x:Name="headerPanel" | |
ClipToBounds="True" | |
Panel.ZIndex="1" | |
Grid.Row="0" | |
Grid.Column="0" | |
Background="{TemplateBinding Background}"> | |
<ContentPresenter | |
DockPanel.Dock="Left" | |
x:Name="HeaderContentPresenter" | |
Content="{TemplateBinding ui:TabControlHelper.TabStripHeader}" | |
ContentTemplate="{TemplateBinding ui:TabControlHelper.TabStripHeaderTemplate}" | |
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> | |
<TabPanel | |
DockPanel.Dock="Left" | |
x:Name="TabPanel" | |
Background="Transparent" | |
Margin="{DynamicResource TabViewTopHeaderPadding}" | |
IsItemsHost="true" /> | |
<ContentPresenter | |
DockPanel.Dock="Right" | |
x:Name="FooterContentPresenter" | |
HorizontalAlignment="Stretch" | |
Content="{TemplateBinding ui:TabControlHelper.TabStripFooter}" | |
ContentTemplate="{TemplateBinding ui:TabControlHelper.TabStripFooterTemplate}" | |
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> | |
</DockPanel> | |
<Border | |
x:Name="contentPanel" | |
Grid.Row="1" | |
Grid.Column="0" | |
BorderBrush="{TemplateBinding BorderBrush}" | |
BorderThickness="{TemplateBinding BorderThickness}" | |
KeyboardNavigation.DirectionalNavigation="Contained" | |
KeyboardNavigation.TabNavigation="Local"> | |
<sc:CrossFadeContentControl | |
x:Name="PART_SelectedContentHost" | |
Focusable="False" | |
Margin="{TemplateBinding Padding}" | |
Content="{TemplateBinding SelectedContent}" | |
ContentStringFormat="{TemplateBinding SelectedContentStringFormat}" | |
ContentTemplate="{TemplateBinding SelectedContentTemplate}" | |
ContentTemplateSelector="{TemplateBinding SelectedContentTemplateSelector}" | |
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> | |
</Border> | |
</Grid> | |
<ControlTemplate.Triggers> | |
<Trigger Property="TabStripPlacement" Value="Top"> | |
<Setter TargetName="TabPanel" Property="VerticalAlignment" Value="Bottom" /> | |
</Trigger> | |
<Trigger Property="TabStripPlacement" Value="Bottom"> | |
<Setter TargetName="headerPanel" Property="Grid.Row" Value="1" /> | |
<Setter TargetName="contentPanel" Property="Grid.Row" Value="0" /> | |
<Setter TargetName="RowDefinition0" Property="Height" Value="*" /> | |
<Setter TargetName="RowDefinition1" Property="Height" Value="Auto" /> | |
<Setter TargetName="TabPanel" Property="VerticalAlignment" Value="Top" /> | |
<Setter TargetName="TabPanel" Property="Margin" Value="{DynamicResource TabViewBottomHeaderPadding}" /> | |
</Trigger> | |
<Trigger Property="TabStripPlacement" Value="Left"> | |
<Setter TargetName="headerPanel" Property="Grid.Row" Value="0" /> | |
<Setter TargetName="contentPanel" Property="Grid.Row" Value="0" /> | |
<Setter TargetName="headerPanel" Property="Grid.Column" Value="0" /> | |
<Setter TargetName="contentPanel" Property="Grid.Column" Value="1" /> | |
<Setter TargetName="ColumnDefinition0" Property="Width" Value="Auto" /> | |
<Setter TargetName="ColumnDefinition1" Property="Width" Value="*" /> | |
<Setter TargetName="RowDefinition0" Property="Height" Value="*" /> | |
<Setter TargetName="RowDefinition1" Property="Height" Value="0" /> | |
<Setter TargetName="HeaderContentPresenter" Property="DockPanel.Dock" Value="Top" /> | |
<Setter TargetName="TabPanel" Property="DockPanel.Dock" Value="Top" /> | |
<Setter TargetName="TabPanel" Property="HorizontalAlignment" Value="Right" /> | |
<Setter TargetName="TabPanel" Property="Margin" Value="{DynamicResource TabViewLeftHeaderPadding}" /> | |
<Setter TargetName="FooterContentPresenter" Property="DockPanel.Dock" Value="Bottom" /> | |
</Trigger> | |
<Trigger Property="TabStripPlacement" Value="Right"> | |
<Setter TargetName="headerPanel" Property="Grid.Row" Value="0" /> | |
<Setter TargetName="contentPanel" Property="Grid.Row" Value="0" /> | |
<Setter TargetName="headerPanel" Property="Grid.Column" Value="1" /> | |
<Setter TargetName="contentPanel" Property="Grid.Column" Value="0" /> | |
<Setter TargetName="ColumnDefinition0" Property="Width" Value="*" /> | |
<Setter TargetName="ColumnDefinition1" Property="Width" Value="Auto" /> | |
<Setter TargetName="RowDefinition0" Property="Height" Value="*" /> | |
<Setter TargetName="RowDefinition1" Property="Height" Value="0" /> | |
<Setter TargetName="HeaderContentPresenter" Property="DockPanel.Dock" Value="Top" /> | |
<Setter TargetName="TabPanel" Property="DockPanel.Dock" Value="Top" /> | |
<Setter TargetName="TabPanel" Property="HorizontalAlignment" Value="Left" /> | |
<Setter TargetName="TabPanel" Property="Margin" Value="{DynamicResource TabViewRightHeaderPadding}" /> | |
<Setter TargetName="FooterContentPresenter" Property="DockPanel.Dock" Value="Bottom" /> | |
</Trigger> | |
</ControlTemplate.Triggers> | |
</ControlTemplate> | |
</Setter.Value> | |
</Setter> | |
</Style> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment