diff options
author | sr55 <[email protected]> | 2020-03-03 20:29:49 +0000 |
---|---|---|
committer | sr55 <[email protected]> | 2020-03-03 20:29:49 +0000 |
commit | af222533d3784c085739aa5b4820a679e1affcb5 (patch) | |
tree | af36a7a28d4586a085f4656742282a1d1c0b9742 /win | |
parent | 7880dd5e9e1a7db8fbd0f2cc3a616704b3864066 (diff) |
WinGui: Override the Treeview Resource template to fix some styling issues on the Dark theme. Fixes # 2646
Diffstat (limited to 'win')
-rw-r--r-- | win/CS/HandBrakeWPF/Themes/Controls/TreeviewDark.xaml | 172 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Themes/Dark.xaml | 1 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/MainView.xaml | 2 |
3 files changed, 174 insertions, 1 deletions
diff --git a/win/CS/HandBrakeWPF/Themes/Controls/TreeviewDark.xaml b/win/CS/HandBrakeWPF/Themes/Controls/TreeviewDark.xaml new file mode 100644 index 000000000..0aaca9bac --- /dev/null +++ b/win/CS/HandBrakeWPF/Themes/Controls/TreeviewDark.xaml @@ -0,0 +1,172 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converters="clr-namespace:HandBrakeWPF.Converters"> + + <Color x:Key="SelectedBackgroundColor">#606060</Color> + <Color x:Key="SelectedUnfocusedColor">#606060</Color> + <Color x:Key="GlyphColor">WhiteSmoke</Color> + + <Style x:Key="{x:Type TreeView}" TargetType="TreeView"> + <Setter Property="OverridesDefaultStyle" Value="True" /> + <Setter Property="SnapsToDevicePixels" Value="True" /> + <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" /> + <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" /> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="TreeView"> + <Border Name="Border" CornerRadius="1" BorderThickness="1"> + <Border.BorderBrush> + <SolidColorBrush Color="{DynamicResource BorderMediumColor}" /> + </Border.BorderBrush> + <Border.Background> + <SolidColorBrush Color="{DynamicResource ControlLightColor}" /> + </Border.Background> + <ScrollViewer Focusable="False" CanContentScroll="False" Padding="4"> + <ItemsPresenter /> + </ScrollViewer> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton"> + <Setter Property="Focusable" Value="False" /> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="ToggleButton"> + <Grid Width="15" Height="13" Background="Transparent"> + <VisualStateManager.VisualStateGroups> + <VisualStateGroup x:Name="CheckStates"> + <VisualState x:Name="Checked"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" + Storyboard.TargetName="Collapsed"> + <DiscreteObjectKeyFrame KeyTime="0" + Value="{x:Static Visibility.Hidden}" /> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" + Storyboard.TargetName="Expanded"> + <DiscreteObjectKeyFrame KeyTime="0" + Value="{x:Static Visibility.Visible}" /> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Unchecked" /> + <VisualState x:Name="Indeterminate" /> + </VisualStateGroup> + </VisualStateManager.VisualStateGroups> + <Path x:Name="Collapsed" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="1,1,1,1" Data="M 4 0 L 8 4 L 4 8 Z"> + <Path.Fill> + <SolidColorBrush Color="{DynamicResource GlyphColor}" /> + </Path.Fill> + </Path> + <Path x:Name="Expanded" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="1,1,1,1" Data="M 0 4 L 8 4 L 4 8 Z" Visibility="Hidden"> + <Path.Fill> + <SolidColorBrush Color="{DynamicResource GlyphColor}" /> + </Path.Fill> + </Path> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="TreeViewItemFocusVisual"> + <Setter Property="Control.Template"> + <Setter.Value> + <ControlTemplate> + <Border> + <Rectangle Margin="0,0,0,0" + StrokeThickness="5" + Stroke="Black" + StrokeDashArray="1 2" + Opacity="0" /> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="{x:Type TreeViewItem}" + TargetType="{x:Type TreeViewItem}"> + <Setter Property="Background" + Value="Transparent" /> + <Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" /> + <Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" /> + <Setter Property="Padding" Value="1,0,0,0" /> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" /> + <Setter Property="FocusVisualStyle" Value="{StaticResource TreeViewItemFocusVisual}" /> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type TreeViewItem}"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition MinWidth="19" + Width="Auto" /> + <ColumnDefinition Width="Auto" /> + <ColumnDefinition Width="*" /> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition /> + </Grid.RowDefinitions> + <VisualStateManager.VisualStateGroups> + <VisualStateGroup x:Name="SelectionStates"> + <VisualState x:Name="Selected"> + <Storyboard> + <ColorAnimationUsingKeyFrames Storyboard.TargetName="Bd" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"> + <EasingColorKeyFrame KeyTime="0" Value="{StaticResource SelectedBackgroundColor}" /> + </ColorAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Unselected" /> + <VisualState x:Name="SelectedInactive"> + <Storyboard> + <ColorAnimationUsingKeyFrames Storyboard.TargetName="Bd" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"> + <EasingColorKeyFrame KeyTime="0" Value="{StaticResource SelectedUnfocusedColor}" /> + </ColorAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + </VisualStateGroup> + <VisualStateGroup x:Name="ExpansionStates"> + <VisualState x:Name="Expanded"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="ItemsHost"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Collapsed" /> + </VisualStateGroup> + </VisualStateManager.VisualStateGroups> + <ToggleButton x:Name="Expander" Style="{StaticResource ExpandCollapseToggleStyle}" ClickMode="Press" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"/> + <Border x:Name="Bd" Grid.Column="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"> + <ContentPresenter x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/> + </Border> + <ItemsPresenter x:Name="ItemsHost" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Visibility="Collapsed" /> + </Grid> + <ControlTemplate.Triggers> + <Trigger Property="HasItems" Value="false"> + <Setter TargetName="Expander" Property="Visibility" Value="Hidden" /> + </Trigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="HasHeader" Value="false" /> + <Condition Property="Width" Value="Auto" /> + </MultiTrigger.Conditions> + <Setter TargetName="PART_Header" Property="MinWidth" Value="75" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="HasHeader" Value="false" /> + <Condition Property="Height" Value="Auto" /> + </MultiTrigger.Conditions> + <Setter TargetName="PART_Header" Property="MinHeight" Value="19" /> + </MultiTrigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> +</ResourceDictionary>
\ No newline at end of file diff --git a/win/CS/HandBrakeWPF/Themes/Dark.xaml b/win/CS/HandBrakeWPF/Themes/Dark.xaml index b8865e34d..da14fe63a 100644 --- a/win/CS/HandBrakeWPF/Themes/Dark.xaml +++ b/win/CS/HandBrakeWPF/Themes/Dark.xaml @@ -104,6 +104,7 @@ <ResourceDictionary Source="Controls/ContextMenuDark.xaml" /> <ResourceDictionary Source="Controls/ToolbarDark.xaml" /> <ResourceDictionary Source="Controls/GroupBoxDark.xaml" /> + <ResourceDictionary Source="Controls/TreeviewDark.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
\ No newline at end of file diff --git a/win/CS/HandBrakeWPF/Views/MainView.xaml b/win/CS/HandBrakeWPF/Views/MainView.xaml index cdbf4bbd2..8473b250b 100644 --- a/win/CS/HandBrakeWPF/Views/MainView.xaml +++ b/win/CS/HandBrakeWPF/Views/MainView.xaml @@ -705,7 +705,7 @@ <ToolBar Name="presetsToolBar"
Grid.Row="1"
- HorizontalAlignment="Center"
+ HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
SnapsToDevicePixels="False"
UseLayoutRounding="False"
|