summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorsr55 <[email protected]>2020-03-03 20:29:49 +0000
committersr55 <[email protected]>2020-03-03 20:29:49 +0000
commitaf222533d3784c085739aa5b4820a679e1affcb5 (patch)
treeaf36a7a28d4586a085f4656742282a1d1c0b9742 /win
parent7880dd5e9e1a7db8fbd0f2cc3a616704b3864066 (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.xaml172
-rw-r--r--win/CS/HandBrakeWPF/Themes/Dark.xaml1
-rw-r--r--win/CS/HandBrakeWPF/Views/MainView.xaml2
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"