Theme.Static.xaml (without compile, no perfomance difference with dynamic). +ThemeManager improvements.

This commit is contained in:
2017-08-31 15:55:40 +03:00
parent 9c2dc48ee2
commit 284cb40004
28 changed files with 6322 additions and 458 deletions

View File

@@ -5,6 +5,7 @@
<Application.Resources> <Application.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/brightsharp;component/themes/style.classic.xaml" />
<ResourceDictionary Source="/brightsharp;component/themes/theme.xaml" /> <ResourceDictionary Source="/brightsharp;component/themes/theme.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -1,10 +1,4 @@
using System; using System.Windows;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace BrightSharp.Ui.Tests namespace BrightSharp.Ui.Tests
{ {

View File

@@ -136,6 +136,14 @@
<Name>BrightSharp</Name> <Name>BrightSharp</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="pics\dogs.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="pics\minjons.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -1,5 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Windows; using System.Windows;
using System.Windows.Media; using System.Windows.Media;

View File

@@ -1,16 +1,4 @@
using System; using System.Windows;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BrightSharp.Ui.Tests namespace BrightSharp.Ui.Tests
{ {

View File

@@ -1,16 +1,4 @@
using System; using System.Windows;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BrightSharp.Ui.Tests namespace BrightSharp.Ui.Tests
{ {

View File

@@ -29,7 +29,7 @@
<ex:MarkupExtensionProperties.Header> <ex:MarkupExtensionProperties.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<Label Foreground="Red">❖</Label> <Label Foreground="Red">❖</Label>
<Label Foreground="White">BrightSharp.Toolkit Presentation ver.2</Label> <Label Foreground="White">BrightSharp.Toolkit Presentation ver.2.1</Label>
<Label Foreground="Blue">❖</Label> <Label Foreground="Blue">❖</Label>
</StackPanel> </StackPanel>
</ex:MarkupExtensionProperties.Header> </ex:MarkupExtensionProperties.Header>
@@ -37,9 +37,9 @@
<Grid Margin="2" ClipToBounds="True"> <Grid Margin="2" ClipToBounds="True">
<bsDiag:ZoomControl x:Name="zc" UseAnimation="True" ClipToBounds="False"> <bsDiag:ZoomControl x:Name="zc" UseAnimation="True" ClipToBounds="False">
<ContentControl Style="{StaticResource DesignerItemStyle}" <ContentControl Style="{DynamicResource DesignerItemStyle}"
Canvas.Left="1600" Canvas.Top="20" Width="300"> Canvas.Left="1600" Canvas.Top="20" Width="300">
<GroupBox Style="{StaticResource ExpandrStyleGroupBox}"> <GroupBox Style="{DynamicResource ExpandrStyleGroupBox}">
<GroupBox.Header> <GroupBox.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<Label>Extended Frame</Label> <Label>Extended Frame</Label>
@@ -64,7 +64,7 @@
</Grid> </Grid>
</GroupBox> </GroupBox>
</ContentControl> </ContentControl>
<ContentControl Style="{StaticResource DesignerItemStyle}" <ContentControl Style="{DynamicResource DesignerItemStyle}"
Canvas.Left="10" Canvas.Top="20" Width="330"> Canvas.Left="10" Canvas.Top="20" Width="330">
<GroupBox Header="Common" Background="{DynamicResource GradientWindowBackgroundBrush}"> <GroupBox Header="Common" Background="{DynamicResource GradientWindowBackgroundBrush}">
<Grid> <Grid>
@@ -83,7 +83,7 @@
<TabItem Header="Tab2"/> <TabItem Header="Tab2"/>
<TabItem Header="Tab3"/> <TabItem Header="Tab3"/>
</TabControl> </TabControl>
<CheckBox HorizontalAlignment="Left" Style="{StaticResource SwitchCheckBoxStyle}" VerticalAlignment="Top" Margin="40,275,0,0" Content="SwitchCheckBoxStyle" Width="213" RenderTransformOrigin="0.5,0.5" Height="Auto" /> <CheckBox HorizontalAlignment="Left" Style="{DynamicResource SwitchCheckBoxStyle}" VerticalAlignment="Top" Margin="40,275,0,0" Content="SwitchCheckBoxStyle" Width="213" RenderTransformOrigin="0.5,0.5" Height="Auto" />
<TextBox Margin="40,304,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="246" Padding="3"> <TextBox Margin="40,304,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="246" Padding="3">
<ex:MarkupExtensionProperties.LeadingElement>L.El.</ex:MarkupExtensionProperties.LeadingElement> <ex:MarkupExtensionProperties.LeadingElement>L.El.</ex:MarkupExtensionProperties.LeadingElement>
<ex:MarkupExtensionProperties.TrailingElement>T.El.</ex:MarkupExtensionProperties.TrailingElement> <ex:MarkupExtensionProperties.TrailingElement>T.El.</ex:MarkupExtensionProperties.TrailingElement>
@@ -157,12 +157,12 @@
</Grid> </Grid>
</GroupBox> </GroupBox>
</ContentControl> </ContentControl>
<ContentControl Style="{StaticResource DesignerItemStyle}" <ContentControl Style="{DynamicResource DesignerItemStyle}"
Height="474" Width="442" Height="474" Width="442"
Padding="2,27,2,2" Padding="2,27,2,2"
Canvas.Left="350" Canvas.Left="350"
Canvas.Top="20"> Canvas.Top="20">
<GroupBox Margin="0,-25,0,0" Style="{StaticResource ExpandrStyleGroupBox}" > <GroupBox Margin="0,-25,0,0" Style="{DynamicResource ExpandrStyleGroupBox}" >
<GroupBox.Header> <GroupBox.Header>
<Label Content="Collections"/> <Label Content="Collections"/>
</GroupBox.Header> </GroupBox.Header>
@@ -241,11 +241,11 @@
</Grid> </Grid>
</GroupBox> </GroupBox>
</ContentControl> </ContentControl>
<ContentControl Style="{StaticResource DesignerItemStyle}" bsDiag:VisualExtensions.CanRotate="False" <ContentControl Style="{DynamicResource DesignerItemStyle}" bsDiag:VisualExtensions.CanRotate="False"
Padding="2,27,2,2" Padding="2,27,2,2"
Canvas.Left="850" Canvas.Left="850"
Canvas.Top="20" Width="700" Height="450"> Canvas.Top="20" Width="700" Height="450">
<GroupBox Margin="0,-25,0,0" Style="{StaticResource ExpandrStyleGroupBox}" > <GroupBox Margin="0,-25,0,0" Style="{DynamicResource ExpandrStyleGroupBox}" >
<GroupBox.Header> <GroupBox.Header>
<Label Content="Xaml RichTextBox (CanRotate=false)"/> <Label Content="Xaml RichTextBox (CanRotate=false)"/>
</GroupBox.Header> </GroupBox.Header>
@@ -261,11 +261,7 @@
<Run Text=" "/> <Run Text=" "/>
<Figure HorizontalAnchor="ColumnRight" Width="205"> <Figure HorizontalAnchor="ColumnRight" Width="205">
<BlockUIContainer> <BlockUIContainer>
<Image UseLayoutRounding="True" d:DesignUseLayoutRounding="True"> <Image UseLayoutRounding="True" d:DesignUseLayoutRounding="True" Source="pack://siteoforigin:,,,/pics/minjons.jpg"/>
<Image.Source>
<BitmapImage CreateOptions="IgnoreImageCache" CacheOption="OnLoad" UriSource="http://minionomaniya.ru/wp-content/uploads/2016/01/%D0%BC%D0%B8%D0%BD%D1%8C%D0%BE%D0%BD%D1%8B-%D0%BF%D1%80%D0%B8%D0%BA%D0%BE%D0%BB%D1%8B-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8.jpg"/>
</Image.Source>
</Image>
</BlockUIContainer> </BlockUIContainer>
</Figure> </Figure>
<Run Text=" "/> <Run Text=" "/>
@@ -273,11 +269,7 @@
<Run Text=" "/> <Run Text=" "/>
<Figure HorizontalAnchor="ColumnRight" Width="230"> <Figure HorizontalAnchor="ColumnRight" Width="230">
<BlockUIContainer> <BlockUIContainer>
<Image UseLayoutRounding="True" d:DesignUseLayoutRounding="True"> <Image UseLayoutRounding="True" d:DesignUseLayoutRounding="True" Source="pack://siteoforigin:,,,/pics/dogs.jpg"/>
<Image.Source>
<BitmapImage CreateOptions="IgnoreImageCache" CacheOption="OnLoad" UriSource="http://www.radionetplus.ru/uploads/posts/2013-12/1386011570_dogs-wallpaper-2.jpg"/>
</Image.Source>
</Image>
</BlockUIContainer> </BlockUIContainer>
</Figure> </Figure>
</Paragraph> </Paragraph>
@@ -307,7 +299,7 @@
</RichTextBox> </RichTextBox>
</GroupBox> </GroupBox>
</ContentControl> </ContentControl>
<ContentControl Style="{StaticResource DesignerItemStyle}" <ContentControl Style="{DynamicResource DesignerItemStyle}"
MaxHeight="300" Width="440" MaxWidth="700" MaxHeight="300" Width="440" MaxWidth="700"
Padding="2,27,2,2" Padding="2,27,2,2"
Canvas.Left="350" Canvas.Left="350"
@@ -320,7 +312,7 @@
</Expander> </Expander>
</ContentControl> </ContentControl>
<ContentControl Width="294" Height="133" Background="{DynamicResource LightBrush}" Canvas.Left="850" Canvas.Top="550" Style="{StaticResource DesignerItemStyle}"> <ContentControl Width="294" Height="133" Background="{DynamicResource LightBrush}" Canvas.Left="850" Canvas.Top="550" Style="{DynamicResource DesignerItemStyle}">
<Border> <Border>
<StackPanel> <StackPanel>
<TextBlock FontStyle="Italic"><Run Text="(Some elements hidden by LODZoom extension)"/></TextBlock> <TextBlock FontStyle="Italic"><Run Text="(Some elements hidden by LODZoom extension)"/></TextBlock>

View File

@@ -23,13 +23,9 @@ namespace BrightSharp.Ui.Tests
private void Button_Click(object sender, RoutedEventArgs e) private void Button_Click(object sender, RoutedEventArgs e)
{ {
if (Enum.IsDefined(typeof(ColorThemes), ThemeManager.Theme + 1)) if (Enum.IsDefined(typeof(ColorThemes), ThemeManager.Theme + 1))
{
ThemeManager.Theme = ThemeManager.Theme + 1; ThemeManager.Theme = ThemeManager.Theme + 1;
}
else else
{
ThemeManager.Theme = ColorThemes.Classic; ThemeManager.Theme = ColorThemes.Classic;
}
tb.Text = ThemeManager.Theme.ToString(); tb.Text = ThemeManager.Theme.ToString();
} }

View File

@@ -1,6 +1,4 @@
using System.Reflection; using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows; using System.Windows;

View File

@@ -1,17 +1,4 @@
using System; using System.Windows.Controls;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BrightSharp.Ui.Tests namespace BrightSharp.Ui.Tests
{ {

View File

@@ -1,17 +1,4 @@
using System; using System.Windows.Controls;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BrightSharp.Ui.Tests namespace BrightSharp.Ui.Tests
{ {

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

View File

@@ -68,6 +68,9 @@
<Compile Include="Diagrams\Thumbs\ResizeThumb.cs" /> <Compile Include="Diagrams\Thumbs\ResizeThumb.cs" />
<Compile Include="Diagrams\Thumbs\RotateThumb.cs" /> <Compile Include="Diagrams\Thumbs\RotateThumb.cs" />
<Compile Include="Extensions\WpfExtensions.cs" /> <Compile Include="Extensions\WpfExtensions.cs" />
<Compile Include="Themes\Theme.cs">
<DependentUpon>Theme.xaml</DependentUpon>
</Compile>
<Compile Include="Themes\ThemeManager.cs" /> <Compile Include="Themes\ThemeManager.cs" />
<Compile Include="Diagrams\ZoomControl.cs"> <Compile Include="Diagrams\ZoomControl.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
@@ -86,7 +89,9 @@
</Page> </Page>
<Compile Include="Converters\ThicknessConverter.cs" /> <Compile Include="Converters\ThicknessConverter.cs" />
<Compile Include="Extensions\MarkupExtensionProperties.cs" /> <Compile Include="Extensions\MarkupExtensionProperties.cs" />
<Compile Include="Themes\Theme.cs" /> <None Include="Themes\Theme.Static.cs">
<DependentUpon>Theme.Static.xaml</DependentUpon>
</None>
<Page Include="Themes\Diagrams\DesignerItem.xaml"> <Page Include="Themes\Diagrams\DesignerItem.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -103,6 +108,10 @@
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="Themes\Style.Classic.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Themes\Style.DarkBlue.xaml"> <Page Include="Themes\Style.DarkBlue.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -116,9 +125,13 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="Themes\Theme.xaml"> <Page Include="Themes\Theme.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<None Include="Themes\Theme.Static.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs"> <Compile Include="Properties\AssemblyInfo.cs">

View File

@@ -1,17 +1,5 @@
using System; using System.Windows;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BrightSharp.Controls namespace BrightSharp.Controls
{ {

View File

@@ -58,23 +58,10 @@ namespace BrightSharp.Diagrams
var zoomChangedHandler = new RoutedEventHandler((sender, args) => var zoomChangedHandler = new RoutedEventHandler((sender, args) =>
{ {
var lodInfo = new LodInfo(GetLODZoom(element)); try {
ChangeVisibility(args, element, window);
var transform = element.TransformToVisual(window) as MatrixTransform;
var scaleX = transform.Matrix.M11;
var newOpacity = (scaleX >= lodInfo.StartRange && scaleX <= lodInfo.EndRange) ? 1 : 0;
if (lodInfo.UseAnimation && args.RoutedEvent != FrameworkElement.LoadedEvent)
{
element.Visibility = Visibility.Visible;
var animation = new DoubleAnimation(newOpacity, TimeSpan.FromSeconds(.5));
element.BeginAnimation(UIElement.OpacityProperty, animation);
} }
else catch (Exception) {
{
element.Visibility = newOpacity == 1 ? Visibility.Visible : Visibility.Hidden;
element.Opacity = newOpacity;
} }
}); });
@@ -93,6 +80,25 @@ namespace BrightSharp.Diagrams
} }
} }
private static void ChangeVisibility(RoutedEventArgs args, FrameworkElement element, Window window) {
var lodInfo = new LodInfo(GetLODZoom(element));
var transform = element.TransformToVisual(window) as MatrixTransform;
var scaleX = transform.Matrix.M11;
var newOpacity = (scaleX >= lodInfo.StartRange && scaleX <= lodInfo.EndRange) ? 1 : 0;
if (lodInfo.UseAnimation && args.RoutedEvent != FrameworkElement.LoadedEvent) {
element.Visibility = Visibility.Visible;
var animation = new DoubleAnimation(newOpacity, TimeSpan.FromSeconds(.5));
element.BeginAnimation(UIElement.OpacityProperty, animation);
}
else {
element.Visibility = newOpacity == 1 ? Visibility.Visible : Visibility.Hidden;
element.Opacity = newOpacity;
}
}
sealed class LodInfo sealed class LodInfo
{ {
public LodInfo(string lod) public LodInfo(string lod)

View File

@@ -257,10 +257,7 @@
<GradientStop Offset="1" Color="#EFF3F3F3" /> <GradientStop Offset="1" Color="#EFF3F3F3" />
</GradientStopCollection> </GradientStopCollection>
</LinearGradientBrush> </LinearGradientBrush>
<Color x:Key="WindowBackgroundHoverColor">#FFF</Color> <Color x:Key="WindowBackgroundHoverColor">#FFF</Color>
<LinearGradientBrush x:Key="SelectedBackgroundBrush" StartPoint="0,0" EndPoint="0,1"> <LinearGradientBrush x:Key="SelectedBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#CC9ACBFF" Offset="0" /> <GradientStop Color="#CC9ACBFF" Offset="0" />
<GradientStop Color="#FF7DBAFF" Offset=".3" /> <GradientStop Color="#FF7DBAFF" Offset=".3" />
@@ -269,18 +266,63 @@
</LinearGradientBrush> </LinearGradientBrush>
<SolidColorBrush x:Key="GlyphBrush" Color="#FF2B1717" /> <SolidColorBrush x:Key="GlyphBrush" Color="#FF2B1717" />
<SolidColorBrush x:Key="LightColorBrush" Color="#E9ECF8" /> <SolidColorBrush x:Key="LightColorBrush" Color="#E9ECF8" />
<Color x:Key="OnWindowForegroundColor">#FF1B140F</Color> <Color x:Key="OnWindowForegroundColor">#FF1B140F</Color>
<Color x:Key="SelectedUnfocusedColor">#FFB6B6B6</Color> <Color x:Key="SelectedUnfocusedColor">#FFB6B6B6</Color>
<SolidColorBrush x:Key="ScrollBarBackgroundBrush" Color="#F0F0F0" /> <SolidColorBrush x:Key="ScrollBarBackgroundBrush" Color="#F0F0F0" />
<SolidColorBrush x:Key="SynWindowBackgroundBrush" Color="#FFD1D1D1" /> <SolidColorBrush x:Key="SynWindowBackgroundBrush" Color="#FFD1D1D1" />
<Color x:Key="SelectedBackgroundColor">#FFFFF8B8</Color> <Color x:Key="SelectedBackgroundColor">#FFFFF8B8</Color>
<SolidColorBrush x:Key="OnWindowForegroundBrush" Color="{DynamicResource OnWindowForegroundColor}" /> <SolidColorBrush x:Key="OnWindowForegroundBrush" Color="{DynamicResource OnWindowForegroundColor}" />
<SolidColorBrush x:Key="HighLightForegroundBrush" Color="#FF500000" /> <SolidColorBrush x:Key="HighLightForegroundBrush" Color="#FF500000" />
<Color x:Key="UiForegroundColor">Black</Color> <Color x:Key="UiForegroundColor">Black</Color>
<SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="White" /> <SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="#F1EFFF" />
<SolidColorBrush x:Key="RowBackgroundBrush" Color="White"/>
<SolidColorBrush x:Key="UiForegroundBrush" Color="{DynamicResource UiForegroundColor}" /> <SolidColorBrush x:Key="UiForegroundBrush" Color="{DynamicResource UiForegroundColor}" />
<Color x:Key="ControlLightColor">#FFFFFFFF</Color>
<Color x:Key="ControlMediumColor">#FFC5C5C5</Color>
<Color x:Key="ControlDarkColor">#FF6B6B6B</Color>
<Color x:Key="ControlMouseOverColor">#FFDADCEC</Color>
<Color x:Key="ControlPressedColor">#FF47909B</Color>
<Color x:Key="BorderLightColor">#D6D6D6</Color>
<Color x:Key="BorderMediumColor">#E6E6E6</Color>
<!--Window Brushes-->
<LinearGradientBrush x:Key="GradientWindowBackgroundBrush" EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#FFAFBAD6" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
<GradientStop Color="#FFD1E3FF" Offset="0.766"/>
<GradientStop Color="#FFE2E8F8" Offset="0.238"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderBrush" EndPoint="0,1">
<GradientStop Color="#EFD3D3" />
<GradientStop Color="#FFB5BBC6" Offset="0.2" />
<GradientStop Color="#FFDDDDF7" Offset="0.8" />
<GradientStop Color="#FF93B1CE" Offset="1" />
</LinearGradientBrush>
<SolidColorBrush x:Key="WindowHeaderInactiveBackgroundBrush" Color="#8888" />
<LinearGradientBrush x:Key="WindowHeaderInactiveBrush" EndPoint="0,1">
<GradientStop Color="#A5A5A5" />
<GradientStop Color="#FF616161" Offset="0.2" />
<GradientStop Color="#FF5C5C5C" Offset="0.8" />
<GradientStop Color="#FFBEC5CB" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FF898989" Offset="0"/>
<GradientStop Color="#FF898989" Offset="1"/>
<GradientStop Color="LightGray" Offset="0.841"/>
<GradientStop Color="#FFCBCBCB" Offset="0.23"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowInnerBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F0F0F0" Offset="1" />
<GradientStop Color="White" />
</LinearGradientBrush>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -0,0 +1,283 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--Radiuses-->
<CornerRadius x:Key="DefaultRadiusSmall">1</CornerRadius>
<CornerRadius x:Key="DefaultRadiusNormal">3</CornerRadius>
<CornerRadius x:Key="TabItemRadius">0,8,0,0</CornerRadius>
<CornerRadius x:Key="TabRadiusTop">0,2,2,2</CornerRadius>
<CornerRadius x:Key="TabRadiusLeft">0,5,5,0</CornerRadius>
<CornerRadius x:Key="TabRadiusRight">5,0,0,5</CornerRadius>
<CornerRadius x:Key="TabRadiusBottom">5,5,0,0</CornerRadius>
<Color x:Key="ValidationErrorColor">Red</Color>
<SolidColorBrush x:Key="RowBackgroundBrush" Color="White"/>
<LinearGradientBrush x:Key="AlternatingRowBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White"/>
<GradientStop Color="White" Offset="1"/>
<GradientStop Color="#FFECF5FF" Offset="0.8"/>
<GradientStop Color="#FFECF5FF" Offset="0.2"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#CCC" Offset="1.0"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="VerticalNormalBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#CCC" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ProgressBarIndeterminateRootBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#F6BCD5FF" Offset="0.046" />
<GradientStop Color="#96D4E4FF" Offset="0.18" />
<GradientStop Color="#4FFFFFFF" Offset="0.512" />
<GradientStop Color="#00D6D6D6" Offset="0.521" />
<GradientStop Color="#BABCD5FF" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="ProgressBarIndeterminateFillBrush" EndPoint="0,1" StartPoint="20,1" MappingMode="Absolute" SpreadMethod="Repeat">
<LinearGradientBrush.Transform>
<TransformGroup>
<SkewTransform AngleX="-10" />
</TransformGroup>
</LinearGradientBrush.Transform>
<GradientStop Color="#FFBCD5FF" Offset="0.088" />
<GradientStop Color="#006EA4FD" Offset="0.475" />
<GradientStop Color="#FFBCD5FF" Offset="0.899" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalProgressBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FF9EFD9B" Offset="0.0"/>
<GradientStop Color="#FF2FA22A" Offset="0.4"/>
<GradientStop Color="#FFB1ECAF" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#00ffffff"
Offset="0" />
<GradientStop Color="#c0ffffff"
Offset="0.3" />
<GradientStop Color="#d0ffffff"
Offset="0.8" />
<GradientStop Color="#00ffffff"
Offset="1" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#CCC" Offset="0.0"/>
<GradientStop Color="#444" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#CCC" Offset="0.0"/>
<GradientStop Color="#444" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<SolidColorBrush x:Key="TopLevelMenuBackgroundHover" Color="Pink" />
<!-- Light Brush -->
<LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Dark Brush -->
<LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#AAA" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="VerticalDarkBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#AAA" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Pressed Brush -->
<LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#E8D4D4" Offset="0.0"/>
<GradientStop Color="#E3E8A6" Offset="0.1"/>
<GradientStop Color="#ECF699" Offset="0.796"/>
<GradientStop Color="#F3F3F3" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TogglePressedBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#E8D4D4" Offset="0.0"/>
<GradientStop Color="#E3E8A6" Offset="0.1"/>
<GradientStop Color="#ECF699" Offset="0.796"/>
<GradientStop Color="#F3F3F3" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="VerticalPressedBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#E8D4D4" Offset="0.0"/>
<GradientStop Color="#E3E8A6" Offset="0.1"/>
<GradientStop Color="#ECF699" Offset="0.796"/>
<GradientStop Color="#F3F3F3" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#444" Offset="0.0"/>
<GradientStop Color="#888" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Defaulted Brush -->
<LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#777" Offset="0.3"/>
<GradientStop Color="#000" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Disabled Brush -->
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
<!-- Border Brushes -->
<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />
<SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />
<!-- Miscellaneous Brushes -->
<LinearGradientBrush x:Key="ScrollBarPageButtonVertBrush" StartPoint="0,0" EndPoint="1,0">
<GradientStopCollection>
<GradientStop Offset="0" Color="#FFD3DBFF" />
<GradientStop Offset="0.3" Color="White" />
<GradientStop Offset="0.7" Color="White" />
<GradientStop Offset="1" Color="#FFD3DBFF" />
</GradientStopCollection>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ScrollBarPageButtonHorizBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStopCollection>
<GradientStop Offset="0" Color="#FFD3DBFF" />
<GradientStop Offset="0.3" Color="White" />
<GradientStop Offset="0.7" Color="White" />
<GradientStop Offset="1" Color="#FFD3DBFF" />
</GradientStopCollection>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TabItemSelectedBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#BBB" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="0.1"/>
<GradientStop Color="#EEE" Offset="0.85"/>
<GradientStop Color="#FFF" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<SolidColorBrush x:Key="MainMenuForegroundBrush" Color="Black"/>
<!--Color STYLED Brush-->
<Color x:Key="WindowBackgroundHoverColor">#FFF</Color>
<LinearGradientBrush x:Key="WindowBackgroundBrush">
<GradientStop Color="#EEE" />
</LinearGradientBrush>
<SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#FFC0C9E4" />
<SolidColorBrush x:Key="GlyphBrush" Color="#444" />
<SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />
<Color x:Key="OnWindowForegroundColor">Black</Color>
<SolidColorBrush x:Key="OnWindowForegroundBrush" Color="{DynamicResource OnWindowForegroundColor}" />
<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#FF4D4D4D" />
<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
<LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<SolidColorBrush x:Key="ScrollBarBackgroundBrush" Color="#F0F0F0" />
<SolidColorBrush x:Key="HighLightForegroundBrush" Color="#FF500000" />
<Color x:Key="UiForegroundColor">Black</Color>
<SolidColorBrush x:Key="UiForegroundBrush" Color="{DynamicResource UiForegroundColor}" />
<Color x:Key="SelectedBackgroundColor">#DEE4FF</Color>
<Color x:Key="SelectedUnfocusedColor">#FFB6B6B6</Color>
<Color x:Key="ControlLightColor">#FFFFFFFF</Color>
<Color x:Key="ControlMediumColor">#FFC5C5C5</Color>
<Color x:Key="ControlDarkColor">#FF6B6B6B</Color>
<Color x:Key="ControlMouseOverColor">#FFDADCEC</Color>
<Color x:Key="ControlPressedColor">#FF47909B</Color>
<Color x:Key="BorderLightColor">#D6D6D6</Color>
<Color x:Key="BorderMediumColor">#E6E6E6</Color>
<!--Window Brushes-->
<SolidColorBrush x:Key="WindowHeaderInactiveBackgroundBrush" Color="#8888" />
<LinearGradientBrush x:Key="GradientWindowBackgroundBrush" EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#FFAFBAD6" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
<GradientStop Color="#FFD1E3FF" Offset="0.766"/>
<GradientStop Color="#FFE2E8F8" Offset="0.238"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderBrush" EndPoint="0,1">
<GradientStop Color="#EFD3D3" />
<GradientStop Color="#FFB5BBC6" Offset="0.2" />
<GradientStop Color="#FFDDDDF7" Offset="0.8" />
<GradientStop Color="#FF93B1CE" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderInactiveBrush" EndPoint="0,1">
<GradientStop Color="#A5A5A5" />
<GradientStop Color="#FF616161" Offset="0.2" />
<GradientStop Color="#FF5C5C5C" Offset="0.8" />
<GradientStop Color="#FFBEC5CB" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FF898989" Offset="0"/>
<GradientStop Color="#FF898989" Offset="1"/>
<GradientStop Color="LightGray" Offset="0.841"/>
<GradientStop Color="#FFCBCBCB" Offset="0.23"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowInnerBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F0F0F0" Offset="1" />
<GradientStop Color="White" />
</LinearGradientBrush>
</ResourceDictionary>

View File

@@ -22,6 +22,8 @@
<Color x:Key="ControlMouseOverColor" >#FF414888</Color> <Color x:Key="ControlMouseOverColor" >#FF414888</Color>
<Color x:Key="ControlPressedColor" >#FF47909B</Color> <Color x:Key="ControlPressedColor" >#FF47909B</Color>
<Color x:Key="BorderLightColor">#D6D6D6</Color>
<Color x:Key="BorderMediumColor">#E6E6E6</Color>
<Color x:Key="ValidationErrorColor" >#FF3333</Color> <Color x:Key="ValidationErrorColor" >#FF3333</Color>
@@ -80,6 +82,7 @@
<SolidColorBrush x:Key="HighLightForegroundBrush" Color="Black" /> <SolidColorBrush x:Key="HighLightForegroundBrush" Color="Black" />
<SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="#555555" /> <SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="#555555" />
<SolidColorBrush x:Key="RowBackgroundBrush" Color="#6C6C6C" />
<LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1"> <LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
@@ -300,5 +303,5 @@
</LinearGradientBrush.GradientStops> </LinearGradientBrush.GradientStops>
</LinearGradientBrush> </LinearGradientBrush>
<SolidColorBrush x:Key="WindowHeaderInactiveBackgroundBrush" Color="#8888" />
</ResourceDictionary> </ResourceDictionary>

View File

@@ -219,7 +219,8 @@
<SolidColorBrush x:Key="UiForegroundBrush" Color="{DynamicResource UiForegroundColor}" /> <SolidColorBrush x:Key="UiForegroundBrush" Color="{DynamicResource UiForegroundColor}" />
<SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="White" /> <SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="#F1F1F1" />
<SolidColorBrush x:Key="RowBackgroundBrush" Color="White"/>
<Color x:Key="SelectedBackgroundColor">#E3E3E3</Color> <Color x:Key="SelectedBackgroundColor">#E3E3E3</Color>
@@ -230,7 +231,45 @@
<Color x:Key="ControlMouseOverColor">#FFEEEEEE</Color> <Color x:Key="ControlMouseOverColor">#FFEEEEEE</Color>
<Color x:Key="ControlPressedColor">#FF47909B</Color> <Color x:Key="ControlPressedColor">#FF47909B</Color>
<Color x:Key="BorderLightColor">#D6D6D6</Color>
<Color x:Key="BorderMediumColor">#E6E6E6</Color>
<!--Window Brushes-->
<SolidColorBrush x:Key="WindowHeaderInactiveBackgroundBrush" Color="#8888" />
<LinearGradientBrush x:Key="GradientWindowBackgroundBrush" EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#FFD0D8EC" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
<GradientStop Color="#FFE9F2FF" Offset="0.766"/>
<GradientStop Color="#FFE2E8F8" Offset="0.238"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderBrush" EndPoint="0,1">
<GradientStop Color="#F4F4FF" />
<GradientStop Color="#FFB5BBC6" Offset="0.2" />
<GradientStop Color="#FFE7E7FC" Offset="0.8" />
<GradientStop Color="#FFD4EAFF" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderInactiveBrush" EndPoint="0,1">
<GradientStop Color="#A5A5A5" />
<GradientStop Color="#FF616161" Offset="0.2" />
<GradientStop Color="#FF5C5C5C" Offset="0.8" />
<GradientStop Color="#FFBEC5CB" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FF898989" Offset="0"/>
<GradientStop Color="#FF898989" Offset="1"/>
<GradientStop Color="LightGray" Offset="0.841"/>
<GradientStop Color="#FFCBCBCB" Offset="0.23"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowInnerBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F0F0F0" Offset="1" />
<GradientStop Color="White" />
</LinearGradientBrush>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -248,7 +248,8 @@
<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" /> <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
<SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="White" /> <SolidColorBrush x:Key="AlternatingRowBackgroundBrush" Color="#E6E6E6" />
<SolidColorBrush x:Key="RowBackgroundBrush" Color="White"/>
<LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1"> <LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops> <GradientBrush.GradientStops>
@@ -284,6 +285,40 @@
<Color x:Key="ControlMouseOverColor">#FFCED0E1</Color> <Color x:Key="ControlMouseOverColor">#FFCED0E1</Color>
<Color x:Key="ControlPressedColor">#FF47909B</Color> <Color x:Key="ControlPressedColor">#FF47909B</Color>
<Color x:Key="BorderLightColor">#D6D6D6</Color>
<Color x:Key="BorderMediumColor">#E6E6E6</Color>
<!--Window Brushes-->
<LinearGradientBrush x:Key="WindowHeaderBrush" EndPoint="0,1">
<GradientStop Color="#9EF4F4FF" />
<GradientStop Color="#80B5BBC6" Offset="0.2" />
<GradientStop Color="#93E7E7FC" Offset="0.8" />
<GradientStop Color="#A9D4EAFF" Offset="1" />
</LinearGradientBrush>
<SolidColorBrush x:Key="WindowHeaderInactiveBackgroundBrush" Color="#8888" />
<LinearGradientBrush x:Key="WindowHeaderInactiveBrush" EndPoint="0,1">
<GradientStop Color="#A5A5A5" />
<GradientStop Color="#FF616161" Offset="0.2" />
<GradientStop Color="#FF5C5C5C" Offset="0.8" />
<GradientStop Color="#FFBEC5CB" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FF898989" Offset="0"/>
<GradientStop Color="#FF898989" Offset="1"/>
<GradientStop Color="LightGray" Offset="0.841"/>
<GradientStop Color="#FFCBCBCB" Offset="0.23"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowInnerBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F0F0F0" Offset="1" />
<GradientStop Color="White" />
</LinearGradientBrush>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -0,0 +1,41 @@
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
namespace BrightSharp.Themes
{
internal partial class ThemeStatic
{
public void CalendarPreviewMouseUp(object sender, MouseEventArgs e) {
if (Mouse.Captured is CalendarItem) { Mouse.Capture(null); }
}
public void DatePickerUnloaded(object sender, RoutedEventArgs e) {
if (sender == null) return;
DependencyObject child = ((Popup)((DatePicker)sender).Template.FindName("PART_Popup", (FrameworkElement)sender))?.Child;
while (child != null && !(child is AdornerDecorator))
child = VisualTreeHelper.GetParent(child) ?? LogicalTreeHelper.GetParent(child);
if (((AdornerDecorator)child)?.Child is Calendar) ((AdornerDecorator)child).Child = null;
}
private void closeButton_Click(object sender, RoutedEventArgs e) {
var window = Window.GetWindow((DependencyObject)sender);
window.Close();
}
private void maximizeButton_Click(object sender, RoutedEventArgs e) {
var window = Window.GetWindow((DependencyObject)sender);
window.WindowState = window.WindowState == WindowState.Normal ? WindowState.Maximized : WindowState.Normal;
}
private void minimizeButton_Click(object sender, RoutedEventArgs e) {
var window = Window.GetWindow((DependencyObject)sender);
window.WindowState = WindowState.Minimized;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,4 @@
using System; using System.Windows;
using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Controls.Primitives; using System.Windows.Controls.Primitives;
using System.Windows.Documents; using System.Windows.Documents;
@@ -8,19 +7,13 @@ using System.Windows.Media;
namespace BrightSharp.Themes namespace BrightSharp.Themes
{ {
internal partial class Theme internal partial class Theme
{ {
public Theme() { public void CalendarPreviewMouseUp(object sender, MouseEventArgs e) {
}
public void CalendarPreviewMouseUp(object sender, MouseEventArgs e)
{
if (Mouse.Captured is CalendarItem) { Mouse.Capture(null); } if (Mouse.Captured is CalendarItem) { Mouse.Capture(null); }
} }
public void DatePickerUnloaded(object sender, RoutedEventArgs e) public void DatePickerUnloaded(object sender, RoutedEventArgs e) {
{
if (sender == null) return; if (sender == null) return;
DependencyObject child = ((Popup)((DatePicker)sender).Template.FindName("PART_Popup", (FrameworkElement)sender))?.Child; DependencyObject child = ((Popup)((DatePicker)sender).Template.FindName("PART_Popup", (FrameworkElement)sender))?.Child;
while (child != null && !(child is AdornerDecorator)) while (child != null && !(child is AdornerDecorator))
@@ -29,23 +22,19 @@ namespace BrightSharp.Themes
} }
private void closeButton_Click(object sender, RoutedEventArgs e) private void closeButton_Click(object sender, RoutedEventArgs e) {
{
var window = Window.GetWindow((DependencyObject)sender); var window = Window.GetWindow((DependencyObject)sender);
window.Close(); window.Close();
} }
private void maximizeButton_Click(object sender, RoutedEventArgs e) private void maximizeButton_Click(object sender, RoutedEventArgs e) {
{
var window = Window.GetWindow((DependencyObject)sender); var window = Window.GetWindow((DependencyObject)sender);
window.WindowState = window.WindowState == WindowState.Normal ? WindowState.Maximized : WindowState.Normal; window.WindowState = window.WindowState == WindowState.Normal ? WindowState.Maximized : WindowState.Normal;
} }
private void minimizeButton_Click(object sender, RoutedEventArgs e) private void minimizeButton_Click(object sender, RoutedEventArgs e) {
{
var window = Window.GetWindow((DependencyObject)sender); var window = Window.GetWindow((DependencyObject)sender);
window.WindowState = WindowState.Minimized; window.WindowState = WindowState.Minimized;
} }
} }
} }

View File

@@ -1,14 +1,16 @@
<ResourceDictionary x:Class="BrightSharp.Themes.Theme" x:ClassModifier="internal" <ResourceDictionary x:Class="BrightSharp.Themes.Theme"
x:ClassModifier="internal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:BrightSharp.Converters" xmlns:bs="clr-namespace:BrightSharp.Extensions"
xmlns:bs="clr-namespace:BrightSharp.Extensions"> xmlns:conv="clr-namespace:BrightSharp.Converters">
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Diagrams/DesignerItem.xaml" /> <ResourceDictionary Source="Diagrams/DesignerItem.xaml" />
<ResourceDictionary Source="Controls/ZoomControl.xaml" /> <ResourceDictionary Source="Controls/ZoomControl.xaml" />
<ResourceDictionary Source="Controls/PropertyGrid.xaml" /> <ResourceDictionary Source="Controls/PropertyGrid.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
<!--Converters--> <!--Converters-->
<conv:ThicknessConverter x:Key="ThickConv" /> <conv:ThicknessConverter x:Key="ThickConv" />
@@ -17,284 +19,9 @@
<BooleanToVisibilityConverter x:Key="btvc" /> <BooleanToVisibilityConverter x:Key="btvc" />
<conv:InverseBooleanToVisibilityConverter x:Key="ibtvc" /> <conv:InverseBooleanToVisibilityConverter x:Key="ibtvc" />
<!--Radiuses-->
<CornerRadius x:Key="DefaultRadiusSmall">1</CornerRadius>
<CornerRadius x:Key="DefaultRadiusNormal">3</CornerRadius>
<CornerRadius x:Key="TabItemRadius">0,8,0,0</CornerRadius>
<CornerRadius x:Key="TabRadiusTop">0,2,2,2</CornerRadius>
<CornerRadius x:Key="TabRadiusLeft">0,5,5,0</CornerRadius>
<CornerRadius x:Key="TabRadiusRight">5,0,0,5</CornerRadius>
<CornerRadius x:Key="TabRadiusBottom">5,5,0,0</CornerRadius>
<Color x:Key="ValidationErrorColor">Red</Color>
<SolidColorBrush x:Key="RowBackgroundBrush" Color="White"/>
<LinearGradientBrush x:Key="AlternatingRowBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White"/>
<GradientStop Color="White" Offset="1"/>
<GradientStop Color="#FFECF5FF" Offset="0.8"/>
<GradientStop Color="#FFECF5FF" Offset="0.2"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#CCC" Offset="1.0"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="VerticalNormalBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#CCC" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ProgressBarIndeterminateRootBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#F6BCD5FF" Offset="0.046" />
<GradientStop Color="#96D4E4FF" Offset="0.18" />
<GradientStop Color="#4FFFFFFF" Offset="0.512" />
<GradientStop Color="#00D6D6D6" Offset="0.521" />
<GradientStop Color="#BABCD5FF" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="ProgressBarIndeterminateFillBrush" EndPoint="0,1" StartPoint="20,1" MappingMode="Absolute" SpreadMethod="Repeat">
<LinearGradientBrush.Transform>
<TransformGroup>
<SkewTransform AngleX="-10" />
</TransformGroup>
</LinearGradientBrush.Transform>
<GradientStop Color="#FFBCD5FF" Offset="0.088" />
<GradientStop Color="#006EA4FD" Offset="0.475" />
<GradientStop Color="#FFBCD5FF" Offset="0.899" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalProgressBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FF9EFD9B" Offset="0.0"/>
<GradientStop Color="#FF2FA22A" Offset="0.4"/>
<GradientStop Color="#FFB1ECAF" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#00ffffff"
Offset="0" />
<GradientStop Color="#c0ffffff"
Offset="0.3" />
<GradientStop Color="#d0ffffff"
Offset="0.8" />
<GradientStop Color="#00ffffff"
Offset="1" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#CCC" Offset="0.0"/>
<GradientStop Color="#444" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#CCC" Offset="0.0"/>
<GradientStop Color="#444" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<SolidColorBrush x:Key="TopLevelMenuBackgroundHover" Color="Pink" />
<!-- Light Brush -->
<LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Dark Brush -->
<LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#AAA" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="VerticalDarkBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#AAA" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Pressed Brush -->
<LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#E8D4D4" Offset="0.0"/>
<GradientStop Color="#E3E8A6" Offset="0.1"/>
<GradientStop Color="#ECF699" Offset="0.796"/>
<GradientStop Color="#F3F3F3" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TogglePressedBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#E8D4D4" Offset="0.0"/>
<GradientStop Color="#E3E8A6" Offset="0.1"/>
<GradientStop Color="#ECF699" Offset="0.796"/>
<GradientStop Color="#F3F3F3" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="VerticalPressedBrush" StartPoint="0,0" EndPoint="1,0">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#E8D4D4" Offset="0.0"/>
<GradientStop Color="#E3E8A6" Offset="0.1"/>
<GradientStop Color="#ECF699" Offset="0.796"/>
<GradientStop Color="#F3F3F3" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#444" Offset="0.0"/>
<GradientStop Color="#888" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Defaulted Brush -->
<LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#777" Offset="0.3"/>
<GradientStop Color="#000" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<!-- Disabled Brush -->
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
<!-- Border Brushes -->
<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />
<SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />
<!-- Miscellaneous Brushes -->
<LinearGradientBrush x:Key="ScrollBarPageButtonVertBrush" StartPoint="0,0" EndPoint="1,0">
<GradientStopCollection>
<GradientStop Offset="0" Color="#FFD3DBFF" />
<GradientStop Offset="0.3" Color="White" />
<GradientStop Offset="0.7" Color="White" />
<GradientStop Offset="1" Color="#FFD3DBFF" />
</GradientStopCollection>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ScrollBarPageButtonHorizBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStopCollection>
<GradientStop Offset="0" Color="#FFD3DBFF" />
<GradientStop Offset="0.3" Color="White" />
<GradientStop Offset="0.7" Color="White" />
<GradientStop Offset="1" Color="#FFD3DBFF" />
</GradientStopCollection>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TabItemSelectedBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#BBB" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="0.1"/>
<GradientStop Color="#EEE" Offset="0.85"/>
<GradientStop Color="#FFF" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<SolidColorBrush x:Key="MainMenuForegroundBrush" Color="Black"/>
<!--Color STYLED Brush-->
<Color x:Key="WindowBackgroundHoverColor">#FFF</Color>
<LinearGradientBrush x:Key="WindowBackgroundBrush">
<GradientStop Color="#EEE" />
</LinearGradientBrush>
<SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#FFC0C9E4" />
<SolidColorBrush x:Key="GlyphBrush" Color="#444" />
<SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />
<Color x:Key="OnWindowForegroundColor">Black</Color>
<SolidColorBrush x:Key="OnWindowForegroundBrush" Color="{DynamicResource OnWindowForegroundColor}" />
<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#FF4D4D4D" />
<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
<LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<SolidColorBrush x:Key="ScrollBarBackgroundBrush" Color="#F0F0F0" />
<SolidColorBrush x:Key="HighLightForegroundBrush" Color="#FF500000" />
<Color x:Key="UiForegroundColor">Black</Color>
<SolidColorBrush x:Key="UiForegroundBrush" Color="{DynamicResource UiForegroundColor}" />
<Color x:Key="SelectedBackgroundColor">#DEE4FF</Color>
<Color x:Key="SelectedUnfocusedColor">#FFB6B6B6</Color>
<Color x:Key="ControlLightColor">#FFFFFFFF</Color>
<Color x:Key="ControlMediumColor">#FFC5C5C5</Color>
<Color x:Key="ControlDarkColor">#FF6B6B6B</Color>
<Color x:Key="ControlMouseOverColor">#FFDADCEC</Color>
<Color x:Key="ControlPressedColor">#FF47909B</Color>
<Color x:Key="BorderLightColor">#D6D6D6</Color>
<Color x:Key="BorderMediumColor">#E6E6E6</Color>
<!--Window Brushes-->
<LinearGradientBrush x:Key="GradientWindowBackgroundBrush" EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#FFAFBAD6" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
<GradientStop Color="#FFD1E3FF" Offset="0.766"/>
<GradientStop Color="#FFE2E8F8" Offset="0.238"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderBrush" EndPoint="0,1">
<GradientStop Color="#EFD3D3" />
<GradientStop Color="#FFB5BBC6" Offset="0.2" />
<GradientStop Color="#FFDDDDF7" Offset="0.8" />
<GradientStop Color="#FF93B1CE" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowHeaderInactiveBrush" EndPoint="0,1">
<GradientStop Color="#A5A5A5" />
<GradientStop Color="#FF616161" Offset="0.2" />
<GradientStop Color="#FF5C5C5C" Offset="0.8" />
<GradientStop Color="#FFBEC5CB" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FF898989" Offset="0"/>
<GradientStop Color="#FF898989" Offset="1"/>
<GradientStop Color="LightGray" Offset="0.841"/>
<GradientStop Color="#FFCBCBCB" Offset="0.23"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="WindowInnerBorderBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F0F0F0" Offset="1" />
<GradientStop Color="White" />
</LinearGradientBrush>
<!--STYLES--> <!--STYLES-->
<ContextMenu x:Key="DecoTextBoxContextMenu"> <ContextMenu x:Key="DecoTextBoxContextMenu">
<MenuItem Command="ApplicationCommands.Copy"> <MenuItem Command="ApplicationCommands.Copy">
<MenuItem.Icon> <MenuItem.Icon>
@@ -5999,4 +5726,5 @@
</Setter> </Setter>
</Style> </Style>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Windows; using System.Windows;
using System.Windows.Threading;
namespace BrightSharp.Themes namespace BrightSharp.Themes
{ {
public enum ColorThemes public enum ColorThemes
{ {
None,
Classic, Classic,
DevLab, DevLab,
Silver, Silver,
@@ -18,30 +20,53 @@ namespace BrightSharp.Themes
public static class ThemeManager public static class ThemeManager
{ {
private const string StyleDictionaryPattern = @"(?<=.+style\.)(.*?)(?=\.xaml)"; private const string StyleDictionaryPattern = @"(?<=.+style\.)(.*?)(?=\.xaml)";
private const string StaticThemeDictionaryUri = "/brightsharp;component/themes/theme.static.xaml";
static ColorThemes? _theme;
public static ColorThemes Theme public static ColorThemes Theme
{ {
get get {
{ if (_theme.HasValue) return _theme.Value;
var curStyleRes = Resources.Where(r => r.Source != null && var curStyleRes = Resources.Where(r => r.Source != null &&
Regex.IsMatch(r.Source.OriginalString, StyleDictionaryPattern, RegexOptions.IgnoreCase)).FirstOrDefault(); Regex.IsMatch(r.Source.OriginalString, StyleDictionaryPattern, RegexOptions.IgnoreCase)).FirstOrDefault();
if (curStyleRes == null) return ColorThemes.Classic; if (curStyleRes == null) return ColorThemes.None;
var match = Regex.Match(curStyleRes.Source.OriginalString, StyleDictionaryPattern, RegexOptions.IgnoreCase); var match = Regex.Match(curStyleRes.Source.OriginalString, StyleDictionaryPattern, RegexOptions.IgnoreCase);
return (ColorThemes)Enum.Parse(typeof(ColorThemes), match.Value, true); _theme = (ColorThemes)Enum.Parse(typeof(ColorThemes), match.Value, true);
return _theme.Value;
} }
set set {
{ SetTheme(value);
var curStyleRes = Resources.Where(r => r.Source != null &&
Regex.IsMatch(r.Source.OriginalString, StyleDictionaryPattern, RegexOptions.IgnoreCase)).FirstOrDefault();
if (curStyleRes != null)
Resources.Remove(curStyleRes);
if (value == ColorThemes.Classic)
return;
Resources.Add(new ResourceDictionary()
{
Source = new Uri($"/brightsharp;component/themes/style.{value}.xaml", UriKind.RelativeOrAbsolute)
});
} }
} }
public static DispatcherOperation SetTheme(ColorThemes value, DispatcherPriority priority = DispatcherPriority.Background) {
if (_theme == value) return Application.Current.Dispatcher.BeginInvoke(new Action(() => { }), priority);
_theme = value;
return Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
if (_theme != value) return;
Application.Current.Resources.BeginInit();
var curStyleRes = Resources.Where(r => r.Source != null &&
Regex.IsMatch(r.Source.OriginalString, StyleDictionaryPattern, RegexOptions.IgnoreCase)).FirstOrDefault();
var curThemeRes = Resources.Where(r => r.Source != null && r.Source.OriginalString.Equals(StaticThemeDictionaryUri, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
if (curThemeRes != null)
Resources.Remove(curThemeRes);
if (curStyleRes != null)
Resources.Remove(curStyleRes);
if (value == ColorThemes.None) return;
Resources.Add(new ResourceDictionary() { Source = new Uri($"/brightsharp;component/themes/style.{value}.xaml", UriKind.RelativeOrAbsolute) });
if (curThemeRes != null)
Resources.Add(new ResourceDictionary() { Source = new Uri(StaticThemeDictionaryUri, UriKind.RelativeOrAbsolute) });
Application.Current.Resources.EndInit();
ThemeChanged?.Invoke(null, EventArgs.Empty);
}), priority);
}
public static event EventHandler ThemeChanged;
private static ICollection<ResourceDictionary> Resources private static ICollection<ResourceDictionary> Resources
{ {
get { return Application.Current.Resources.MergedDictionaries; } get { return Application.Current.Resources.MergedDictionaries; }

View File

@@ -7,7 +7,7 @@
Professional WPF Themes and User Controls. It requires `.NET 4.5`. Professional WPF Themes and User Controls. It requires `.NET 4.5`.
### Current Version 2.0 ### Current Version 2.1
### Nuget ### Nuget

View File

@@ -4,7 +4,9 @@
```xml ```xml
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/brightsharp;component/generic.xaml" />
<ResourceDictionary Source="/brightsharp;component/themes/style.classic.xaml" />
<ResourceDictionary Source="/brightsharp;component/themes/theme.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
@@ -15,7 +17,7 @@
Change by `ThemeManager` Change by `ThemeManager`
```c# ```c#
ThemeManager.CurrentTheme = ColorThemes.Classic; ThemeManager.CurrentTheme = ColorThemes.DarkBlue;
``` ```
# Change themes by ResourceDictionary # Change themes by ResourceDictionary
@@ -23,12 +25,15 @@ Change by `ThemeManager`
As default we use Classic theme. As default we use Classic theme.
You also can change theme by adding resource dictionary after generic.xaml. Use one of them: You also can change theme by adding resource dictionary after generic.xaml. Use one of them:
```xml ```xml
<ResourceDictionary Source="/brightsharp;component/style.devlab.xaml" /> <ResourceDictionary Source="/brightsharp;component/themes/style.classic.xaml" />
<ResourceDictionary Source="/brightsharp;component/style.blue.xaml" /> <ResourceDictionary Source="/brightsharp;component/themes/style.devlab.xaml" />
<ResourceDictionary Source="/brightsharp;component/style.darkblue.xaml" /> <ResourceDictionary Source="/brightsharp;component/themes/style.silver.xaml" />
<ResourceDictionary Source="/brightsharp;component/style.silver.xaml" /> <ResourceDictionary Source="/brightsharp;component/themes/style.blue.xaml" />
<ResourceDictionary Source="/brightsharp;component/themes/style.darkblue.xaml" />
``` ```
## NOTE ## NOTES
You can use custom window style named `BrightSharpWindowStyle`. You can use custom window style named `BrightSharpWindowStyle`.
Also defined additional useful styles and extensions. For more info see Demo source code. Also defined additional useful styles and extensions. For more info see Demo source code.
<!--Theme resource use `DynamicResource`. If you want, you can use `StaticResource` via **`theme.static.xaml`**.-->