basic dark ui implementation

master
subhra74 2022-01-19 21:11:41 +05:30
parent 1bcb9f6a87
commit 1a65bd02c0
20 changed files with 690 additions and 16 deletions

View File

@ -11,6 +11,7 @@
<local:TranslationResourceDictionary x:Name="TranslationResource"></local:TranslationResourceDictionary>
<local:SkinResourceDictionary LightSource="Themes/LightTheme.xaml"
DarkSource="Themes/DarkTheme.xaml" />
<ResourceDictionary Source="Resources/MainListViewStyles.xaml"/>
<!--<ResourceDictionary Source="Resources/ContextMenuStyles.xaml"/>
<ResourceDictionary Source="Resources/ComboBoxStyles.xaml"/>
<ResourceDictionary Source="Resources/ButtonStyles.xaml"/>-->

View File

@ -131,20 +131,20 @@ namespace XDM.Wpf.UI.Dialogs.AdvancedDownloadOption
TxtProxyPort.IsEnabled = CmbProxyType.SelectedIndex == 2;
}
#if NET45_OR_GREATER
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
}
#endif
}
}
}

View File

@ -7,10 +7,12 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using XDM.Core.Lib.Common;
using XDM.Wpf.UI.Win32;
namespace XDM.Wpf.UI.Dialogs.CompletedDialog
{
@ -63,5 +65,20 @@ namespace XDM.Wpf.UI.Dialogs.CompletedDialog
{
this.Show();
}
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
}
}

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -41,6 +42,15 @@ namespace XDM.Wpf.UI.Dialogs.CredentialDialog
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
private void BtnOk_Click(object sender, RoutedEventArgs e)

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -41,6 +42,15 @@ namespace XDM.Wpf.UI.Dialogs.DeleteConfirm
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
private void BtnDelete_Click(object sender, RoutedEventArgs e)

View File

@ -8,6 +8,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -37,6 +38,15 @@ namespace XDM.Wpf.UI.Dialogs.LanguageSettings
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
private void BtnOk_Click(object sender, RoutedEventArgs e)

View File

@ -91,21 +91,23 @@ namespace XDM.Wpf.UI.Dialogs.NewDownload
this.Show();
}
#if NET45_OR_GREATER
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
if (App.Skin == Skin.Dark)
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
}
#endif
}
private void CmbLocation_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

View File

@ -61,20 +61,22 @@ namespace XDM.Wpf.UI.Dialogs.NewVideoDownload
}
}
#if NET45_OR_GREATER
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
if (App.Skin == Skin.Dark)
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
}
#endif
}
private void btnAdvanced_Click(object sender, RoutedEventArgs e)
{

View File

@ -2,10 +2,12 @@
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
using System.Windows.Interop;
using Translations;
using XDM.Common.UI;
using XDM.Core.Lib.Common;
using XDM.Wpf.UI.Dialogs.SpeedLimiter;
using XDM.Wpf.UI.Win32;
namespace XDM.Wpf.UI.Dialogs.ProgressWindow
{
@ -252,6 +254,21 @@ namespace XDM.Wpf.UI.Dialogs.ProgressWindow
}
}
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
private Action<int> actPrgUpdate;
private string downloadId = string.Empty;
private SpeedLimiterWindow? speedLimiterDlg;

View File

@ -8,6 +8,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -100,6 +101,15 @@ namespace XDM.Wpf.UI.Dialogs.QueuesWindow
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
public bool Result { get; set; } = false;

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
using System.Windows.Interop;
using Translations;
using XDM.Core.Lib.Common;
using XDM.Core.Lib.Util;
@ -92,6 +93,15 @@ namespace XDM.Wpf.UI.Dialogs.QueuesWindow
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
public bool Result { get; set; } = false;

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Interop;
using XDM.Core.Lib.UI;
using XDM.Wpf.UI.Common;
using XDM.Wpf.UI.Win32;
@ -38,6 +39,15 @@ namespace XDM.Wpf.UI.Dialogs.QueuesWindow
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
private void BtnOK_Click(object sender, RoutedEventArgs e)

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -30,6 +31,15 @@ namespace XDM.Wpf.UI.Dialogs.RefreshLink
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
public event EventHandler? WatchingStopped;

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -35,6 +36,15 @@ namespace XDM.Wpf.UI.Dialogs.Settings
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
public string CategoryName

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -33,6 +34,15 @@ namespace XDM.Wpf.UI.Dialogs.Settings
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
public void SetPassword(PasswordEntry password)

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -53,6 +54,15 @@ namespace XDM.Wpf.UI.Dialogs.Settings
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
private void BtnOK_Click(object sender, RoutedEventArgs e)

View File

@ -7,6 +7,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
@ -53,6 +54,15 @@ namespace XDM.Wpf.UI.Dialogs.SpeedLimiter
{
base.OnSourceInitialized(e);
NativeMethods.DisableMinMaxButton(this);
#if NET45_OR_GREATER
if (XDM.Wpf.UI.App.Skin == Skin.Dark)
{
var helper = new WindowInteropHelper(this);
helper.EnsureHandle();
DarkModeHelper.UseImmersiveDarkMode(helper.Handle, true);
}
#endif
}
}
}

View File

@ -461,13 +461,13 @@
Grid.Column="0" Grid.Row="0"
VirtualizingStackPanel.VirtualizationMode="Recycling"
GridViewColumnHeader.Click="lvInProgress_Click">
<ListView.Resources>
<!--<ListView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/MainListViewStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ListView.Resources>
</ListView.Resources>-->
<ListView.View>
<GridView>
<GridViewColumn Width="200">
@ -524,6 +524,7 @@
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}">
<Setter Property="ContextMenu" Value="{StaticResource lvInProgressContextMenu}" />
<Setter Property="Padding" Value="0,0" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
@ -533,13 +534,13 @@
Grid.Column="0" Grid.Row="0"
VirtualizingStackPanel.VirtualizationMode="Recycling"
GridViewColumnHeader.Click="lvFinished_Click">
<ListView.Resources>
<!--<ListView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/MainListViewStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ListView.Resources>
</ListView.Resources>-->
<ListView.View>
<GridView>
<GridViewColumn Width="400" >
@ -587,6 +588,7 @@
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}">
<Setter Property="ContextMenu" Value="{StaticResource lvFinishedContextMenu}" />
<Setter Property="Padding" Value="0,0" />
</Style>
</ListView.ItemContainerStyle>
</ListView>

View File

@ -70,7 +70,7 @@
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>-->
<Style x:Key="ScrollBarLineButton"
<!--<Style x:Key="ScrollBarLineButton"
TargetType="{x:Type RepeatButton}">
<Setter Property="SnapsToDevicePixels"
Value="True" />
@ -252,7 +252,9 @@
Value="{StaticResource VerticalScrollBar}" />
</Trigger>
</Style.Triggers>
</Style>
</Style>-->
<DataTemplate x:Key="HeaderTemplateArrowUp">
<DockPanel>
<TextBlock HorizontalAlignment="Left" Text="{Binding}"/>
@ -450,6 +452,8 @@
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Foreground" Value="{StaticResource ListViewForecolor}"></Setter>
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
<Setter Property="Background" Value="{StaticResource ListViewBackcolor}"></Setter>
<Setter Property="Padding" Value="5"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">

View File

@ -336,7 +336,7 @@
</Setter>
</Style>
<!--#endregion -->
<!--#region TabControl -->
<Style TargetType="{x:Type TabControl}">
<Setter Property="OverridesDefaultStyle"
@ -499,6 +499,7 @@
</Setter>
</Style>
<!--#endregion-->
<!--#region TextBox-->
<Style TargetType="{x:Type TextBox}">
<Setter Property="SnapsToDevicePixels"
@ -523,6 +524,8 @@
Value="{StaticResource ControlBordercolor}" />
<Setter Property="Foreground"
Value="{StaticResource TextForecolor}" />
<Setter Property="Background"
Value="{StaticResource TextBackcolor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
@ -580,5 +583,521 @@
</Setter.Value>
</Setter>
</Style>
<!--#endregion PasswordBox -->
<Style x:Key="{x:Type PasswordBox}"
TargetType="{x:Type PasswordBox}">
<Setter Property="SnapsToDevicePixels"
Value="true" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="KeyboardNavigation.TabNavigation"
Value="None" />
<Setter Property="FocusVisualStyle"
Value="{x:Null}" />
<Setter Property="FontFamily"
Value="Verdana" />
<Setter Property="PasswordChar"
Value="*" />
<Setter Property="MinWidth"
Value="20" />
<Setter Property="Padding"
Value="2" />
<Setter Property="MinHeight"
Value="20" />
<Setter Property="AllowDrop"
Value="true" />
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="Padding"
Value="2" />
<Setter Property="BorderBrush"
Value="{StaticResource ControlBordercolor}" />
<Setter Property="Foreground"
Value="{StaticResource TextForecolor}" />
<Setter Property="Background"
Value="{StaticResource TextBackcolor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type PasswordBox}">
<Border x:Name="Border" Padding="{TemplateBinding Padding}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}">
<ScrollViewer x:Name="PART_ContentHost" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledTextBackcolor}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource ListViewMouseOverBackcolor}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--#region -->
<!--#region CheckBox-->
<Style x:Key="{x:Type CheckBox}"
TargetType="{x:Type CheckBox}">
<Setter Property="SnapsToDevicePixels"
Value="true" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="FocusVisualStyle"
Value="{DynamicResource CheckBoxFocusVisual}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<BulletDecorator Background="Transparent" VerticalAlignment="Center">
<BulletDecorator.Bullet>
<Border x:Name="Border" Width="16" Height="16" CornerRadius="3"
BorderThickness="0" BorderBrush="DodgerBlue" Background="DodgerBlue" Opacity="1.0">
<!--<Border.BorderBrush>
<LinearGradientBrush StartPoint="0,0"
EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="{DynamicResource BorderLightColor}"
Offset="0.0" />
<GradientStop Color="{DynamicResource BorderDarkColor}"
Offset="1.0" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Border.BorderBrush>
<Border.Background>
<LinearGradientBrush StartPoint="0,0"
EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="{DynamicResource ControlLightColor}" />
<GradientStop Color="{DynamicResource ControlMediumColor}"
Offset="1.0" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Border.Background>-->
<Grid>
<Path Visibility="Collapsed"
Width="16"
Height="16"
x:Name="CheckMark"
SnapsToDevicePixels="True"
StrokeThickness="2"
Data="M 3,8 7,12 13,4">
<Path.Stroke>
<SolidColorBrush Color="White" />
</Path.Stroke>
</Path>
<!--<Path Visibility="Collapsed"
Width="7"
Height="7"
x:Name="InderminateMark"
SnapsToDevicePixels="False"
StrokeThickness="2"
Data="M 0 7 L 7 0">
<Path.Stroke>
<SolidColorBrush Color="White" />
</Path.Stroke>
</Path>-->
</Grid>
</Border>
</BulletDecorator.Bullet>
<!-- <VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Panel.Background).
(GradientBrush.GradientStops)[1].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource ControlMouseOverColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Panel.Background).
(GradientBrush.GradientStops)[1].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource ControlPressedColor}" />
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Border.BorderBrush).
(GradientBrush.GradientStops)[0].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource PressedBorderDarkColor}" />
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Border.BorderBrush).
(GradientBrush.GradientStops)[1].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource PressedBorderLightColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled" />
</VisualStateGroup>
<VisualStateGroup x:Name="CheckStates">
<VisualState x:Name="Checked">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)"
Storyboard.TargetName="CheckMark">
<DiscreteObjectKeyFrame KeyTime="0"
Value="{x:Static Visibility.Visible}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Unchecked" />
<VisualState x:Name="Indeterminate">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)"
Storyboard.TargetName="InderminateMark">
<DiscreteObjectKeyFrame KeyTime="0"
Value="{x:Static Visibility.Visible}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>-->
<ContentPresenter Margin="4,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"
RecognizesAccessKey="True" />
</BulletDecorator>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="DeepSkyBlue"/>
</Trigger>
<!--<Trigger Property="IsIndeterminate" Value="True">
<Setter TargetName="InderminateMark" Property="Visibility" Value="Visible"/>
</Trigger>-->
<Trigger Property="IsChecked" Value="False">
<Setter TargetName="CheckMark" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Opacity" Value="0.5"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--#endregion-->
<!--#region ScrollBar-->
<Style x:Key="ScrollBarLineButton"
TargetType="{x:Type RepeatButton}">
<Setter Property="SnapsToDevicePixels"
Value="True" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="Focusable"
Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border x:Name="Border" Margin="1" BorderThickness="0"
Background="{StaticResource ControlBackcolor}"
BorderBrush="{StaticResource ControlBackcolor}">
<Path x:Name="Arrow" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="{Binding Content,
RelativeSource={RelativeSource TemplatedParent}}" Fill="{StaticResource ControlForecolor}" />
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsEnabled" Value="True"/>
</MultiTrigger.Conditions>
<Setter TargetName="Border" Property="Background" Value="{StaticResource ButtonOverBackcolor}"/>
<Setter TargetName="Arrow" Property="Fill" Value="{StaticResource ControlForecolor}"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ScrollBarPageButton"
TargetType="{x:Type RepeatButton}">
<Setter Property="SnapsToDevicePixels"
Value="True" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="IsTabStop"
Value="false" />
<Setter Property="Focusable"
Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border Background="{StaticResource ControlBackcolor}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ScrollBarThumb"
TargetType="{x:Type Thumb}">
<Setter Property="SnapsToDevicePixels"
Value="True" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="IsTabStop"
Value="false" />
<Setter Property="Focusable"
Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Name="ThumBorder" Background="{StaticResource ScrollBarThumbColorNormal}"
BorderBrush="{StaticResource ScrollBarThumbColorNormal}" BorderThickness="1" />
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ThumBorder" Property="Background" Value="{StaticResource ScrollBarThumbColorHot}"/>
<Setter TargetName="ThumBorder" Property="BorderBrush" Value="{StaticResource ScrollBarThumbColorHot}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="VerticalScrollBar"
TargetType="{x:Type ScrollBar}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MaxHeight="18" />
<RowDefinition Height="0.00001*" />
<RowDefinition MaxHeight="18" />
</Grid.RowDefinitions>
<Border Grid.RowSpan="3"
Background="{StaticResource ControlBackcolor}" />
<RepeatButton Grid.Row="0"
Style="{StaticResource ScrollBarLineButton}"
Height="18"
Command="ScrollBar.LineUpCommand"
Content="M 0 4 L 8 4 L 4 0 Z" />
<Track x:Name="PART_Track" Grid.Row="1" IsDirectionReversed="true">
<Track.DecreaseRepeatButton>
<RepeatButton Style="{StaticResource ScrollBarPageButton}"
Command="ScrollBar.PageUpCommand" />
</Track.DecreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}" Margin="1,0,1,0"
Background="{StaticResource ScrollBarThumbColorNormal}"
BorderBrush="{StaticResource ScrollBarThumbColorNormal}"/>
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton Style="{StaticResource ScrollBarPageButton}"
Command="ScrollBar.PageDownCommand" />
</Track.IncreaseRepeatButton>
</Track>
<RepeatButton Grid.Row="2"
Style="{StaticResource ScrollBarLineButton}"
Height="18"
Command="ScrollBar.LineDownCommand"
Content="M 0 0 L 4 4 L 8 0 Z" />
</Grid>
</ControlTemplate>
<ControlTemplate x:Key="HorizontalScrollBar"
TargetType="{x:Type ScrollBar}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="18" />
<ColumnDefinition Width="0.00001*" />
<ColumnDefinition MaxWidth="18" />
</Grid.ColumnDefinitions>
<Border Grid.ColumnSpan="3" Background="{StaticResource ControlBackcolor}" />
<RepeatButton Grid.Column="0"
Style="{StaticResource ScrollBarLineButton}"
Width="18"
Command="ScrollBar.LineLeftCommand"
Content="M 4 0 L 4 8 L 0 4 Z" />
<Track x:Name="PART_Track"
Grid.Column="1"
IsDirectionReversed="False">
<Track.DecreaseRepeatButton>
<RepeatButton Style="{StaticResource ScrollBarPageButton}"
Command="ScrollBar.PageLeftCommand" />
</Track.DecreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}"
Margin="0,1,0,1" Background="{StaticResource ScrollBarThumbColorNormal}"
BorderBrush="{StaticResource ScrollBarThumbColorNormal}">
</Thumb>
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton Style="{StaticResource ScrollBarPageButton}"
Command="ScrollBar.PageRightCommand" />
</Track.IncreaseRepeatButton>
</Track>
<RepeatButton Grid.Column="2"
Style="{StaticResource ScrollBarLineButton}"
Width="18"
Command="ScrollBar.LineRightCommand"
Content="M 0 0 L 4 4 L 0 8 Z" />
</Grid>
</ControlTemplate>
<Style x:Key="{x:Type ScrollBar}"
TargetType="{x:Type ScrollBar}">
<Setter Property="SnapsToDevicePixels"
Value="True" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Style.Triggers>
<Trigger Property="Orientation"
Value="Horizontal">
<Setter Property="Width"
Value="Auto" />
<Setter Property="Height"
Value="18" />
<Setter Property="Template"
Value="{StaticResource HorizontalScrollBar}" />
</Trigger>
<Trigger Property="Orientation"
Value="Vertical">
<Setter Property="Width"
Value="18" />
<Setter Property="Height"
Value="Auto" />
<Setter Property="Template"
Value="{StaticResource VerticalScrollBar}" />
</Trigger>
</Style.Triggers>
</Style>
<!--#endregion-->
<!--#region ListBox-->
<Style x:Key="{x:Type ListBox}"
TargetType="ListBox">
<Setter Property="SnapsToDevicePixels"
Value="true" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility"
Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility"
Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll"
Value="true" />
<Setter Property="MinWidth"
Value="120" />
<Setter Property="MinHeight"
Value="95" />
<Setter Property="Background"
Value="{StaticResource ListViewBackcolor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<Border Name="Border"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<!--<Border.Background>
<SolidColorBrush Color="{StaticResource ControlLightColor}" />
</Border.Background>
<Border.BorderBrush>
<SolidColorBrush Color="{StaticResource BorderMediumColor}" />
</Border.BorderBrush>-->
<ScrollViewer Margin="0"
Focusable="false">
<StackPanel Margin="0"
IsItemsHost="True" />
</ScrollViewer>
</Border>
<ControlTemplate.Triggers>
<!--<Trigger Property="IsEnabled"
Value="false">
<Setter TargetName="Border"
Property="Background">
<Setter.Value>
<SolidColorBrush Color="{StaticResource DisabledControlLightColor}" />
</Setter.Value>
</Setter>
<Setter TargetName="Border"
Property="BorderBrush">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource DisabledBorderLightColor}" />
</Setter.Value>
</Setter>
</Trigger>-->
<Trigger Property="IsGrouping"
Value="true">
<Setter Property="ScrollViewer.CanContentScroll"
Value="false" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="{x:Type ListBoxItem}"
TargetType="ListBoxItem">
<Setter Property="SnapsToDevicePixels"
Value="true" />
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="Background"
Value="{StaticResource ListViewBackcolor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border" Padding="5" SnapsToDevicePixels="true">
<Border.Background>
<SolidColorBrush Color="Transparent" />
</Border.Background>
<!--<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected" />
<VisualState x:Name="Selected">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Panel.Background).
(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource SelectedBackgroundColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="SelectedUnfocused">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Panel.Background).
(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource SelectedUnfocusedColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>-->
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource ListViewSelectedBackcolor}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--#endregion-->
</ResourceDictionary>