Browse Source

Simplified TabControl style.

pull/386/head
Steven Kirk 11 years ago
parent
commit
c98254025f
  1. 3
      src/Perspex.Themes.Default/DefaultTheme.paml
  2. 119
      src/Perspex.Themes.Default/TabControl.paml

3
src/Perspex.Themes.Default/DefaultTheme.paml

@ -17,9 +17,10 @@
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.Separator.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.Separator.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.ScrollBar.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.ScrollBar.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.ScrollViewer.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.ScrollViewer.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TabControl.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TabStrip.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TabStrip.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TabStripItem.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TabStripItem.paml"/>
<!-- TabControl needs to come after TabStrip as it redefines the inner TabStrip.ItemsPanel-->
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TabControl.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TextBox.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.TextBox.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.ToggleButton.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.ToggleButton.paml"/>
<StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.Expander.paml"/> <StyleInclude Source="resource://application/Perspex.Themes.Default/Perspex.Themes.Default.Expander.paml"/>

119
src/Perspex.Themes.Default/TabControl.paml

@ -1,93 +1,50 @@
<Styles xmlns="https://github.com/perspex"> <Styles xmlns="https://github.com/perspex">
<Style Selector="TabControl[TabStripPlacement=Top]"> <Style Selector="TabControl">
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate> <ControlTemplate>
<Grid RowDefinitions="Auto,*"> <Border Background="{TemplateBinding Background}"
<TabStrip Name="PART_TabStrip" BorderBrush="{TemplateBinding BorderBrush}"
MemberSelector="{Static TabControl.HeaderSelector}" BorderThickness="{TemplateBinding BorderThickness}">
Items="{TemplateBinding Items}" <DockPanel>
SelectedIndex="{TemplateBinding Path=SelectedIndex, Mode=TwoWay}"/> <TabStrip Name="PART_TabStrip"
<Carousel Name="PART_Content" MemberSelector="{Static TabControl.HeaderSelector}"
MemberSelector="{Static TabControl.ContentSelector}" Items="{TemplateBinding Items}"
Items="{TemplateBinding Items}" SelectedIndex="{TemplateBinding Path=SelectedIndex, Mode=TwoWay}"/>
SelectedIndex="{TemplateBinding Path=SelectedIndex}" <Carousel Name="PART_Content"
Transition="{TemplateBinding Transition}" MemberSelector="{Static TabControl.ContentSelector}"
Grid.Row="1"/> Items="{TemplateBinding Items}"
</Grid> SelectedIndex="{TemplateBinding Path=SelectedIndex}"
Transition="{TemplateBinding Transition}"
Grid.Row="1"/>
</DockPanel>
</Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
</Style> </Style>
<Style Selector="TabControl[TabStripPlacement=Bottom]"> <Style Selector="TabControl[TabStripPlacement=Top] /template/ TabStrip">
<Setter Property="Template"> <Setter Property="DockPanel.Dock" Value="Top"/>
<ControlTemplate>
<Grid RowDefinitions="*,Auto">
<Carousel Name="PART_Content"
MemberSelector="{Static TabControl.ContentSelector}"
Items="{TemplateBinding Items}"
SelectedIndex="{TemplateBinding Path=SelectedIndex}"
Transition="{TemplateBinding Transition}"/>
<TabStrip Name="PART_TabStrip"
MemberSelector="{Static TabControl.HeaderSelector}"
Items="{TemplateBinding Items}"
SelectedIndex="{TemplateBinding Path=SelectedIndex, Mode=TwoWay}"
Grid.Row="1"/>
</Grid>
</ControlTemplate>
</Setter>
</Style> </Style>
<Style Selector="TabControl[TabStripPlacement=Left]"> <Style Selector="TabControl[TabStripPlacement=Bottom] /template/ TabStrip">
<Setter Property="Template"> <Setter Property="DockPanel.Dock" Value="Bottom"/>
<ControlTemplate> </Style>
<Grid ColumnDefinitions="Auto,*"> <Style Selector="TabControl[TabStripPlacement=Left] /template/ TabStrip">
<Border> <Setter Property="DockPanel.Dock" Value="Left"/>
<ScrollViewer> <Setter Property="ItemsPanel">
<TabStrip Name="PART_TabStrip" <Setter.Value>
MemberSelector="{Static TabControl.HeaderSelector}" <ItemsPanelTemplate>
Items="{TemplateBinding Items}" <StackPanel Orientation="Vertical"/>
SelectedIndex="{TemplateBinding Path=SelectedIndex, Mode=TwoWay}"> </ItemsPanelTemplate>
<TabStrip.ItemsPanel> </Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</TabStrip.ItemsPanel>
</TabStrip>
</ScrollViewer>
</Border>
<Carousel Name="PART_Content"
MemberSelector="{Static TabControl.ContentSelector}"
Items="{TemplateBinding Items}"
SelectedIndex="{TemplateBinding Path=SelectedIndex}"
Transition="{TemplateBinding Transition}"
Grid.Column="1"/>
</Grid>
</ControlTemplate>
</Setter> </Setter>
</Style> </Style>
<Style Selector="TabControl[TabStripPlacement=Right]"> <Style Selector="TabControl[TabStripPlacement=Right] /template/ TabStrip">
<Setter Property="Template"> <Setter Property="DockPanel.Dock" Value="Right"/>
<ControlTemplate> <Setter Property="ItemsPanel">
<Grid ColumnDefinitions="*,Auto"> <Setter.Value>
<Carousel Name="PART_Content" <ItemsPanelTemplate>
MemberSelector="{Static TabControl.ContentSelector}" <StackPanel Orientation="Vertical"/>
Items="{TemplateBinding Items}" </ItemsPanelTemplate>
SelectedIndex="{TemplateBinding Path=SelectedIndex}" </Setter.Value>
Transition="{TemplateBinding Transition}"/>
<Border Grid.Column="1">
<ScrollViewer>
<TabStrip Name="PART_TabStrip"
MemberSelector="{Static TabControl.HeaderSelector}"
Items="{TemplateBinding Items}"
SelectedIndex="{TemplateBinding Path=SelectedIndex, Mode=TwoWay}">
<TabStrip.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</TabStrip.ItemsPanel>
</TabStrip>
</ScrollViewer>
</Border>
</Grid>
</ControlTemplate>
</Setter> </Setter>
</Style> </Style>
</Styles> </Styles>
Loading…
Cancel
Save