123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828 |
- <ResourceDictionary
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="clr-namespace:InABox.DynamicGrid"
- xmlns:wpf="clr-namespace:InABox.WPF"
- xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
- xmlns:themes="clr-namespace:InABox.WPF.Themes"
- x:Class="InABox.WPF.Generic"
- x:ClassModifier="public">
-
- <wpf:ObjectToVisibilityConverter x:Key="DynamicTabControlVisibilityConverter" IsNull="Collapsed" NotNull="Visible" />
- <!-- VerticalSplitter -->
- <ControlTemplate x:Key="VerticalSplitter">
- <Grid Background="{TemplateBinding Background}" Width="4">
- <Button x:Name="PART_Left" Visibility="Collapsed" />
- <Button x:Name="PART_Right" Visibility="Collapsed" />
- <StackPanel Margin="0" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="0,2,0,0" />
- </StackPanel>
- </Grid>
- </ControlTemplate>
- <!-- HorizontalSplitter -->
- <ControlTemplate x:Key="HorizontalSplitter">
- <Grid Background="{TemplateBinding Background}" Height="4">
- <Button x:Name="PART_Left" Visibility="Collapsed" />
- <Button x:Name="PART_Right" Visibility="Collapsed" />
- <StackPanel Margin="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1" Margin="2,0,0,0" />
- </StackPanel>
- </Grid>
- </ControlTemplate>
- <Style TargetType="wpf:ZoomPanel">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="wpf:ZoomPanel">
- <ControlTemplate.Resources>
- <wpf:BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
- </ControlTemplate.Resources>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="*"/>
- <RowDefinition Height="Auto"/>
- </Grid.RowDefinitions>
- <ScrollViewer Grid.Row="0"
- Background="{TemplateBinding Background}"
- x:Name="PART_Scroll"
- HorizontalScrollBarVisibility="Auto"
- VerticalScrollBarVisibility="Auto">
- <Border Background="Transparent" x:Name="PART_ContentBorder">
- <ContentControl x:Name="PART_ZoomContent" VerticalAlignment="Center" Content="{TemplateBinding Content}">
- <ContentControl.LayoutTransform>
- <ScaleTransform ScaleX="{Binding Scale,RelativeSource={RelativeSource TemplatedParent}}"
- ScaleY="{Binding Scale,RelativeSource={RelativeSource TemplatedParent}}"/>
- </ContentControl.LayoutTransform>
- </ContentControl>
- </Border>
- </ScrollViewer>
- <DockPanel Grid.Row="1" LastChildFill="False"
- Visibility="{Binding ShowNavigationButtons,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource BoolToVisibilityConverter}}">
- <Button x:Name="PART_ZoomInButton" Margin="5">
- <Image Source="pack://application:,,,/InABox.Wpf;component/Resources/zoomin.png" Width="32" Height="32"/>
- </Button>
- <Button x:Name="PART_ZoomOutButton" Margin="0,5,5,5">
- <Image Source="pack://application:,,,/InABox.Wpf;component/Resources/zoomout.png" Width="32" Height="32"/>
- </Button>
- <Button x:Name="PART_LeftButton" Margin="0,5,5,5">
- <Image Source="pack://application:,,,/InABox.Wpf;component/Resources/leftarrow.png" Width="32" Height="32"/>
- </Button>
- <Button x:Name="PART_RightButton" Margin="0,5,5,5">
- <Image Source="pack://application:,,,/InABox.Wpf;component/Resources/rightarrow.png" Width="32" Height="32"/>
- </Button>
- <Button x:Name="PART_UpButton" Margin="0,5,5,5">
- <Image Source="pack://application:,,,/InABox.Wpf;component/Resources/uparrow.png" Width="32" Height="32"/>
- </Button>
- <Button x:Name="PART_DownButton" Margin="0,5,5,5">
- <Image Source="pack://application:,,,/InABox.Wpf;component/Resources/downarrow.png" Width="32" Height="32"/>
- </Button>
- </DockPanel>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!-- DynamicSplitPanel -->
- <Style TargetType="{x:Type local:DynamicSplitPanel}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type local:DynamicSplitPanel}">
- <Grid x:Name="PART_Grid">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="0" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="0" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <!-- Collapsed Master -->
- <DockPanel Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Margin="0,0,4,0">
- <Button
- DockPanel.Dock="Top"
- x:Name="PART_DetailsOnly"
- BorderBrush="Gray"
- BorderThickness="0.75"
- Margin="0,0,0,4"
- Background="WhiteSmoke"
- MinHeight="25"
- MinWidth="25"
- Focusable="False"
- HorizontalAlignment="Stretch"
- Height="{Binding ElementName=PART_CombinedRight, Path=ActualHeight}">
- <Polygon
- Points="1,0 9,5, 1,10"
- Stroke="Gray"
- Fill="Silver" />
- </Button>
- <Border
- DockPanel.Dock="Top"
- BorderBrush="Gray"
- BorderThickness="0.75"
- Background="WhiteSmoke"
- HorizontalAlignment="Stretch">
- <Label
- x:Name="PART_MasterHeader"
- Content="{Binding MasterCaption, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}"
- HorizontalContentAlignment="Right">
- <Label.LayoutTransform>
- <RotateTransform Angle="270" />
- </Label.LayoutTransform>
- </Label>
- </Border>
- </DockPanel>
- <!-- Master Header -->
- <DockPanel Grid.Row="0" Grid.Column="1">
- <Button x:Name="PART_CombinedRight" BorderBrush="Gray" BorderThickness="0.75"
- Margin="4,0,0,4" Background="WhiteSmoke" DockPanel.Dock="Right" MinWidth="25"
- MinHeight="25" HorizontalContentAlignment="Center"
- VerticalContentAlignment="Center" Focusable="False">
- <Polygon Points="1,0 9,5, 1,10" Stroke="Gray" Fill="Silver" />
- </Button>
- <Button x:Name="PART_CombinedLeft" BorderBrush="Gray" BorderThickness="0.75"
- Margin="4,0,0,4" Background="WhiteSmoke" DockPanel.Dock="Right" MinWidth="25"
- MinHeight="25" Focusable="False">
- <Polygon Points="9,0 1,5, 9,10" Stroke="Gray" Fill="Silver" />
- </Button>
- <ContentPresenter DockPanel.Dock="Left" MinHeight="25" Margin="0,0,0,4"
- Content="{Binding Header, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}" />
- </DockPanel>
- <!-- Master -->
- <ContentPresenter Grid.Row="1" Grid.Column="1"
- Content="{Binding Master, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}" />
- <syncfusion:SfGridSplitter Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Name="PART_Splitter"
- ResizeBehavior="PreviousAndNext" Width="4" Background="Transparent"
- Template="{StaticResource VerticalSplitter}">
- <syncfusion:SfGridSplitter.PreviewStyle>
- <Style TargetType="Control">
- <Setter Property="Background" Value="Gray" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="Control">
- <Grid x:Name="Root" Opacity="0.5">
- <Rectangle Fill="{TemplateBinding Background}" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </syncfusion:SfGridSplitter.PreviewStyle>
- </syncfusion:SfGridSplitter>
- <!-- Detail Header -->
- <ContentPresenter Grid.Row="0" Grid.Column="3" Margin="0,0,0,4"
- Content="{Binding DetailHeader, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}" />
- <!-- Detail -->
- <Grid x:Name="PART_DetailGrid" Grid.Row="1" Grid.Column="3">
- <Grid.RowDefinitions>
- <RowDefinition Height="*" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <ContentPresenter Grid.Row="0"
- Content="{Binding Detail, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}" />
- <syncfusion:SfGridSplitter Grid.Row="1" Name="PART_DetailSplitter"
- ResizeBehavior="PreviousAndNext" Height="4"
- HorizontalAlignment="Stretch" Background="Transparent"
- Template="{StaticResource HorizontalSplitter}">
- <syncfusion:SfGridSplitter.PreviewStyle>
- <Style TargetType="Control">
- <Setter Property="Background" Value="Gray" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="Control">
- <Grid x:Name="Root" Opacity="0.5">
- <Rectangle Fill="{TemplateBinding Background}" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </syncfusion:SfGridSplitter.PreviewStyle>
- </syncfusion:SfGridSplitter>
- <ContentPresenter Grid.Row="2"
- Content="{Binding SecondaryDetail, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}" />
- </Grid>
- <!-- Collapsed Detail -->
- <DockPanel Grid.Row="0" Grid.Column="4" Grid.RowSpan="2" Margin="4,0,0,0">
- <Button
- DockPanel.Dock="Top"
- x:Name="PART_MasterOnly"
- BorderBrush="Gray"
- BorderThickness="0.75"
- Margin="0,0,0,4"
- Background="WhiteSmoke"
- MinHeight="25"
- MinWidth="25"
- Focusable="False"
- Height="{Binding ElementName=PART_CombinedRight, Path=ActualHeight}">
- <Polygon
- Points="9,0 1,5, 9,10"
- Stroke="Gray"
- Fill="Silver" />
- </Button>
- <Border
- DockPanel.Dock="Top"
- BorderBrush="Gray"
- BorderThickness="0.75"
- Background="WhiteSmoke">
- <Label
- x:Name="PART_DetailHeader"
- Content="{Binding DetailCaption, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicSplitPanel}}"
- HorizontalContentAlignment="Right">
- <Label.LayoutTransform>
- <RotateTransform Angle="270" />
- </Label.LayoutTransform>
- </Label>
- </Border>
- </DockPanel>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style TargetType="syncfusion:GridFilterControl">
- <Setter Property="SortOptionVisibility" Value="Collapsed" />
- </Style>
- <!-- VerticalColumnHeader -->
- <Style x:Key="ActionColumnHeader" TargetType="{x:Type syncfusion:GridHeaderCellControl}">
- <Setter Property="Background" Value="LightSkyBlue" />
- <Setter Property="Foreground" Value="Black" />
- <Setter Property="BorderBrush" Value="Black" />
- <Setter Property="BorderThickness" Value="0.5,0.5,0.5,0.5" />
- <Setter Property="HorizontalContentAlignment" Value="Left" />
- <Setter Property="Padding" Value="5,3" />
- <Setter Property="FontFamily" Value="Segoe UI" />
- <Setter Property="FontSize" Value="14" />
- <Setter Property="FontWeight" Value="Normal" />
- <Setter Property="IsTabStop" Value="False" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type syncfusion:GridHeaderCellControl}">
- <Grid>
- <Grid.LayoutTransform>
- <RotateTransform Angle="90" />
- </Grid.LayoutTransform>
- <VisualStateManager.VisualStateGroups>
- <VisualStateGroup x:Name="HiddenColumnsResizingStates">
- <VisualState x:Name="PreviousColumnHidden">
- <Storyboard>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="3,0,1,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="HiddenState">
- <Storyboard>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="3,0,3,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="NormalState" />
- <VisualState x:Name="LastColumnHidden">
- <Storyboard>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="0,0,3,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="CommonStates">
- <VisualState x:Name="MouseOver" />
- <VisualState x:Name="Normal" />
- </VisualStateGroup>
- <VisualStateGroup x:Name="BorderStates">
- <VisualState x:Name="NormalCell" />
- <VisualState x:Name="FooterColumnCell">
- <Storyboard BeginTime="0">
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_FooterCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="1,0,1,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="BeforeFooterColumnCell">
- <Storyboard BeginTime="0">
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_FooterCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,1" />
- </ThicknessAnimationUsingKeyFrames>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- </VisualStateManager.VisualStateGroups>
- <Border x:Name="PART_FooterCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
- Background="{TemplateBinding Background}" />
- <Border x:Name="PART_HeaderCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
- <Grid Margin="{TemplateBinding Padding}" SnapsToDevicePixels="True">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}"
- Content="{TemplateBinding Content}"
- ContentStringFormat="{TemplateBinding ContentStringFormat}"
- Focusable="False"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="Center" />
- <Grid x:Name="PART_SortButtonPresenter" Grid.Column="1" SnapsToDevicePixels="True">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*">
- <ColumnDefinition.MinWidth>
- <Binding Mode="OneWay" Path="SortDirection"
- RelativeSource="{RelativeSource TemplatedParent}">
- <Binding.Converter>
- <syncfusion:SortDirectionToWidthConverter />
- </Binding.Converter>
- </Binding>
- </ColumnDefinition.MinWidth>
- </ColumnDefinition>
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Path
- Data="F1M753.644,-13.0589L753.736,-12.9639 753.557,-12.7816 732.137,8.63641 732.137,29.7119 756.445,5.40851 764.094,-2.24384 764.275,-2.42352 771.834,5.1286 796.137,29.4372 796.137,8.36163 774.722,-13.0589 764.181,-23.5967 753.644,-13.0589z"
- Fill="Gray" HorizontalAlignment="Center" Height="8.138" Stretch="Fill"
- SnapsToDevicePixels="True" VerticalAlignment="Center" Width="8.938">
- <Path.RenderTransform>
- <TransformGroup>
- <RotateTransform Angle="90" />
- <ScaleTransform ScaleY="1" ScaleX="1" />
- </TransformGroup>
- </Path.RenderTransform>
- <!-- <Path.Visibility> -->
- <!-- <Binding ConverterParameter="Ascending" Path="SortDirection" RelativeSource="{RelativeSource TemplatedParent}"> -->
- <!-- <Binding.Converter> -->
- <!-- <syncfusion:SortDirectionToVisibilityConverter/> -->
- <!-- </Binding.Converter> -->
- <!-- </Binding> -->
- <!-- </Path.Visibility> -->
- </Path>
- <Path
- Data="F1M181.297,177.841L181.205,177.746 181.385,177.563 202.804,156.146 202.804,135.07 178.497,159.373 170.847,167.026 170.666,167.205 163.107,159.653 138.804,135.345 138.804,156.42 160.219,177.841 170.76,188.379 181.297,177.841z"
- Fill="Gray" HorizontalAlignment="Center" Height="8.138" Stretch="Fill"
- SnapsToDevicePixels="True" VerticalAlignment="Center" Width="8.938">
- <Path.RenderTransform>
- <TransformGroup>
- <RotateTransform Angle="90" />
- <ScaleTransform ScaleY="1" ScaleX="1" />
- </TransformGroup>
- </Path.RenderTransform>
- <!-- <Path.Visibility> -->
- <!-- <Binding ConverterParameter="Decending" Path="SortDirection" RelativeSource="{RelativeSource TemplatedParent}"> -->
- <!-- <Binding.Converter> -->
- <!-- <syncfusion:SortDirectionToVisibilityConverter/> -->
- <!-- </Binding.Converter> -->
- <!-- </Binding> -->
- <!-- </Path.Visibility> -->
- </Path>
- <TextBlock Grid.Column="1" Foreground="{TemplateBinding Foreground}" FontSize="10"
- Margin="0,-4,0,0" SnapsToDevicePixels="True"
- Text="{TemplateBinding SortNumber}"
- Visibility="{TemplateBinding SortNumberVisibility}"
- VerticalAlignment="Center" />
- </Grid>
- <syncfusion:FilterToggleButton x:Name="PART_FilterToggleButton" Grid.Column="2"
- HorizontalAlignment="Stretch" SnapsToDevicePixels="True"
- Visibility="{TemplateBinding FilterIconVisiblity}"
- VerticalAlignment="Stretch" />
- <Border x:Name="PART_FilterPopUpPresenter" />
- </Grid>
- </Border>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <ControlTemplate x:Key="VerticalColumnHeader"
- TargetType="{x:Type syncfusion:GridHeaderCellControl}">
- <Grid>
- <Grid.LayoutTransform>
- <RotateTransform Angle="270" />
- </Grid.LayoutTransform>
- <VisualStateManager.VisualStateGroups>
- <VisualStateGroup x:Name="HiddenColumnsResizingStates">
- <VisualState x:Name="PreviousColumnHidden">
- <Storyboard>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="3,0,1,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="HiddenState">
- <Storyboard>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="3,0,3,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="NormalState" />
- <VisualState x:Name="LastColumnHidden">
- <Storyboard>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="0,0,3,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- <VisualStateGroup x:Name="CommonStates">
- <VisualState x:Name="MouseOver" />
- <VisualState x:Name="Normal" />
- </VisualStateGroup>
- <VisualStateGroup x:Name="BorderStates">
- <VisualState x:Name="NormalCell" />
- <VisualState x:Name="FooterColumnCell">
- <Storyboard BeginTime="0">
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_FooterCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="1,0,1,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- <VisualState x:Name="BeforeFooterColumnCell">
- <Storyboard BeginTime="0">
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_FooterCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,1" />
- </ThicknessAnimationUsingKeyFrames>
- <ThicknessAnimationUsingKeyFrames BeginTime="0" Duration="1.0:0:0"
- Storyboard.TargetProperty="BorderThickness"
- Storyboard.TargetName="PART_HeaderCellBorder">
- <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,1" />
- </ThicknessAnimationUsingKeyFrames>
- </Storyboard>
- </VisualState>
- </VisualStateGroup>
- </VisualStateManager.VisualStateGroups>
- <Border x:Name="PART_FooterCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
- Background="{TemplateBinding Background}" />
- <Border x:Name="PART_HeaderCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
- <Grid Margin="{TemplateBinding Padding}" SnapsToDevicePixels="True">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ContentPresenter
- ContentTemplate="{TemplateBinding ContentTemplate}"
- ContentStringFormat="{TemplateBinding ContentStringFormat}" Focusable="False"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
- <ContentPresenter.Content>
- <TextBlock Text="{Binding HeaderText}" TextWrapping="Wrap" />
- </ContentPresenter.Content>
- </ContentPresenter>
- <Grid x:Name="PART_SortButtonPresenter" Grid.Column="1" SnapsToDevicePixels="True">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*">
- <ColumnDefinition.MinWidth>
- <Binding Mode="OneWay" Path="SortDirection"
- RelativeSource="{RelativeSource TemplatedParent}">
- <Binding.Converter>
- <syncfusion:SortDirectionToWidthConverter />
- </Binding.Converter>
- </Binding>
- </ColumnDefinition.MinWidth>
- </ColumnDefinition>
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <TextBlock Grid.Column="1" Foreground="{TemplateBinding Foreground}"
- FontSize="10" Margin="0,-4,0,0" SnapsToDevicePixels="True"
- Text="{TemplateBinding SortNumber}"
- Visibility="{TemplateBinding SortNumberVisibility}"
- VerticalAlignment="Bottom" />
- </Grid>
- <syncfusion:FilterToggleButton x:Name="PART_FilterToggleButton" Grid.Column="2"
- HorizontalAlignment="Stretch"
- SnapsToDevicePixels="True"
- Visibility="{TemplateBinding FilterIconVisiblity}"
- VerticalAlignment="Stretch">
- <syncfusion:FilterToggleButton.LayoutTransform>
- <RotateTransform Angle="90" />
- </syncfusion:FilterToggleButton.LayoutTransform>
- </syncfusion:FilterToggleButton>
- <Border x:Name="PART_FilterPopUpPresenter">
- <Border.LayoutTransform>
- <RotateTransform Angle="90" />
- </Border.LayoutTransform>
- </Border>
- </Grid>
- </Border>
- </Grid>
- </ControlTemplate>
-
-
- <Style BasedOn="{StaticResource {x:Type TabItem}}" TargetType="{x:Type local:DynamicTabItem}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type local:DynamicTabItem}">
- <Border Name="Panel" BorderBrush="Gray" PreviewMouseRightButtonUp="Panel_OnPreviewMouseRightButtonUp">
- <Border.MinHeight>
- <MultiBinding>
- <MultiBinding.Converter>
- <wpf:DoubleCalculator Type="Sum" Constants="-0.75" />
- </MultiBinding.Converter>
- <Binding RelativeSource="{RelativeSource AncestorType={x:Type local:DynamicTabControl}}" Path="TabStripHeight" />
- </MultiBinding>
- </Border.MinHeight>
- <DockPanel>
- <Button x:Name="CloseButton" DockPanel.Dock="Right" Content="x" BorderThickness="0"
- Padding="5,0,5,0" Background="Transparent" VerticalContentAlignment="Center"
- HorizontalContentAlignment="Center"
- IsEnabled="True" Margin="2"
- Command="{TemplateBinding CloseTabCommand}" />
- <ContentPresenter
- x:Name="ContentSite"
- DockPanel.Dock="Left"
- VerticalAlignment="Center"
- HorizontalAlignment="Center"
- ContentSource="Header"
- Margin="10,0"
- />
- </DockPanel>
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter TargetName="Panel" Property="Background"
- Value="{Binding Path=(themes:ThemeManager.SelectedTabItemBackgroundBrush)}" />
- <Setter TargetName="Panel" Property="TextBlock.Foreground"
- Value="{Binding Path=(themes:ThemeManager.SelectedTabItemForegroundBrush)}" />
- </Trigger>
- <Trigger Property="IsSelected" Value="False">
- <Setter TargetName="Panel" Property="Background"
- Value="{Binding Path=(themes:ThemeManager.WorkspaceBackgroundBrush)}" />
- <Setter TargetName="Panel" Property="TextBlock.Foreground"
- Value="{Binding Path=(themes:ThemeManager.WorkspaceForegroundBrush)}" />
- </Trigger>
- <Trigger Property="CanClose" Value="True">
- <Setter TargetName="CloseButton" Property="Visibility" Value="Visible" />
- </Trigger>
- <Trigger Property="CanClose" Value="False">
- <Setter TargetName="CloseButton" Property="Visibility" Value="Collapsed" />
- </Trigger>
- <Trigger Property="TabStripPlacement" Value="{x:Static Dock.Top}">
- <Setter TargetName="Panel" Property="CornerRadius" Value="5,5,0,0" />
- <Setter TargetName="Panel" Property="Margin" Value="0,0,2,0" />
- <Setter TargetName="Panel" Property="BorderThickness" Value="0.75,0.75,0.75,0" />
- </Trigger>
- <Trigger Property="TabStripPlacement" Value="{x:Static Dock.Bottom}">
- <Setter TargetName="Panel" Property="CornerRadius" Value="0,0,5,5" />
- <Setter TargetName="Panel" Property="Margin" Value="0,0,2,0" />
- <Setter TargetName="Panel" Property="BorderThickness" Value="0.75,0,0.75,0.75" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!-- ~1~ This template explains how to render a tab item with a close button. @1@ -->
- <!-- <DataTemplate x:Key="ClosableTabItemHeader"> -->
- <!-- <DockPanel MinWidth="120"> -->
- <!-- <Button DockPanel.Dock="Right" Command="ApplicationCommands.Delete" CommandParameter="{Binding}" Content="X" Cursor="Hand" Focusable="False" FontSize="10" FontWeight="Bold" Height="16" Width="16" /> -->
- <!-- <TextBlock Padding="0,0,10,0" Text="{Binding DisplayName}" VerticalAlignment="Center" /> -->
- <!-- </DockPanel> -->
- <!-- </DataTemplate> -->
- <!-- ~1~ This template explains how to render a tab item with a new button. @1@ -->
- <!-- <DataTemplate x:Key="NewTabItemHeader"> -->
- <!-- <Button Command="{Binding NewTabCommand, RelativeSource={RelativeSource AncestorType={x:Type local:DynamicTabControl}}}" Content="+" Cursor="Hand" Focusable="False" FontWeight="Bold" -->
- <!-- Width="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"/> -->
- <!-- </DataTemplate> -->
- <Style BasedOn="{StaticResource {x:Type TabControl}}" TargetType="{x:Type local:DynamicTabControl}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type local:DynamicTabControl}">
- <Grid Background="{Binding Path=(themes:ThemeManager.WorkspaceBackgroundBrush)}">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="2" x:Name="TopSeparator"/>
- <RowDefinition Height="*" />
- <RowDefinition Height="0" x:Name="BottomSeparator" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto"/>
- <ColumnDefinition Width="Auto"/>
- <ColumnDefinition Width="*"/>
- <ColumnDefinition Width="Auto"/>
- <ColumnDefinition Width="Auto"/>
- </Grid.ColumnDefinitions>
-
- <Border
- x:Name="Separator"
- BorderBrush="Gray"
- Grid.Column="0"
- Grid.ColumnSpan="5"
- Padding="0"
- MinHeight="{Binding TabStripHeight, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicTabControl}}">
- <DockPanel x:Name="Panel" Background="{Binding Path=(themes:ThemeManager.WorkspaceBackgroundBrush)}" Margin="0">
- <Button x:Name="AddButton" DockPanel.Dock="Right" Content="+"
- BorderThickness="0" Padding="5,0,5,0" Background="Transparent"
- Command="{TemplateBinding CreateTabCommand}" />
- <TabPanel IsItemsHost="true" Background="Transparent" VerticalAlignment="Stretch" Margin="0"/>
- </DockPanel>
- </Border>
-
- <!-- Margin="0,2,0,2" -->
- <ContentPresenter
- Grid.Row="2"
- Grid.Column="0"
- ContentSource="LeftPanel" />
-
- <syncfusion:SfGridSplitter
- Grid.Row="2"
- Grid.Column="1"
- ResizeBehavior="PreviousAndNext"
- Width="4"
- Background="Transparent"
- Visibility="{Binding LeftPanel, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicTabControl}, Converter={StaticResource DynamicTabControlVisibilityConverter}}"
- Template="{StaticResource VerticalSplitter}"/>
-
- <ContentPresenter
- Grid.Row="2"
- Grid.Column="2"
- x:Name="PART_SelectedContentHost"
- ContentSource="SelectedContent"
- />
-
- <syncfusion:SfGridSplitter
- Grid.Row="2"
- Grid.Column="3"
- ResizeBehavior="PreviousAndNext"
- Width="4"
- Background="Transparent"
- Visibility="{Binding RightPanel, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicTabControl}, Converter={StaticResource DynamicTabControlVisibilityConverter}}"
- Template="{StaticResource VerticalSplitter}"/>
-
- <!-- Margin="0,2,0,2" -->
- <ContentPresenter
- Grid.Row="2"
- Grid.Column="4"
- ContentSource="RightPanel" />
-
- </Grid>
-
- <ControlTemplate.Triggers>
- <Trigger Property="CanCreateTab" Value="True">
- <Setter TargetName="AddButton" Property="Visibility" Value="Visible" />
- </Trigger>
- <Trigger Property="CanCreateTab" Value="False">
- <Setter TargetName="AddButton" Property="Visibility" Value="Collapsed" />
- </Trigger>
- <!-- <Trigger Property="TabStripPlacement" Value="{x:Static Dock.Top}"> -->
- <!-- <Setter TargetName="Panel" Property="Grid.Row" Value="0" /> -->
- <!-- <Setter TargetName="Content" Property="BorderThickness" Value="0,0.75,0,0" /> -->
- <!-- <Setter TargetName="Content" Property="Padding" Value="0,2,0,0" /> -->
- <!-- </Trigger> -->
-
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="TabStripPlacement" Value="{x:Static Dock.Top}" />
- <Condition Property="TabStripVisible" Value="False"/>
- </MultiTrigger.Conditions>
- <MultiTrigger.Setters>
- <Setter TargetName="Separator" Property="Grid.Row" Value="0" />
- <Setter TargetName="Separator" Property="BorderThickness" Value="0,0,0,0" />
- <Setter TargetName="TopSeparator" Property="Height" Value="0" />
- <Setter TargetName="BottomSeparator" Property="Height" Value="0" />
- </MultiTrigger.Setters>
- </MultiTrigger>
-
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="TabStripPlacement" Value="{x:Static Dock.Top}" />
- <Condition Property="TabStripVisible" Value="True"/>
- </MultiTrigger.Conditions>
- <MultiTrigger.Setters>
- <Setter TargetName="Separator" Property="Grid.Row" Value="0" />
- <Setter TargetName="Separator" Property="BorderThickness" Value="0,0,0,0.75" />
- <Setter TargetName="Separator" Property="Margin" Value="0,0,0,0" />
- <Setter TargetName="TopSeparator" Property="Height" Value="{Binding SeparatorMargin, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicTabControl}}" />
- <Setter TargetName="BottomSeparator" Property="Height" Value="0" />
- </MultiTrigger.Setters>
- </MultiTrigger>
-
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="TabStripPlacement" Value="{x:Static Dock.Bottom}" />
- <Condition Property="TabStripVisible" Value="False"/>
- </MultiTrigger.Conditions>
- <MultiTrigger.Setters>
- <Setter TargetName="Separator" Property="Grid.Row" Value="4" />
- <Setter TargetName="Separator" Property="BorderThickness" Value="0,0,0,0" />
- <Setter TargetName="TopSeparator" Property="Height" Value="0" />
- <Setter TargetName="BottomSeparator" Property="Height" Value="0" />
- </MultiTrigger.Setters>
- </MultiTrigger>
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="TabStripPlacement" Value="{x:Static Dock.Bottom}" />
- <Condition Property="TabStripVisible" Value="True"/>
- </MultiTrigger.Conditions>
- <MultiTrigger.Setters>
- <Setter TargetName="Separator" Property="Grid.Row" Value="4" />
- <Setter TargetName="Separator" Property="BorderThickness" Value="0,0.75,0,0" />
- <Setter TargetName="Separator" Property="Margin" Value="0,0,0,0" />
- <Setter TargetName="TopSeparator" Property="Height" Value="0" />
- <Setter TargetName="BottomSeparator" Property="Height" Value="{Binding SeparatorMargin, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:DynamicTabControl}}" />
- </MultiTrigger.Setters>
- </MultiTrigger>
-
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </ResourceDictionary>
|