You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
233 lines
8.7 KiB
233 lines
8.7 KiB
/**************************************************************************************
|
|
|
|
Toolkit for WPF
|
|
|
|
Copyright (C) 2007-2016 Xceed Software Inc.
|
|
|
|
This program is provided to you under the terms of the Microsoft Public
|
|
License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license
|
|
|
|
For more features, controls, and fast professional support,
|
|
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
|
|
|
|
Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids
|
|
|
|
************************************************************************************/
|
|
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using Xceed.Wpf.Toolkit;
|
|
#if !OPEN_SOURCE
|
|
using Xceed.Wpf.Toolkit.Themes;
|
|
using Xceed.Wpf.Themes.Metro;
|
|
using Xceed.Wpf.Themes;
|
|
#endif
|
|
using System.Windows.Controls.Primitives;
|
|
using System;
|
|
using System.Data;
|
|
using Xceed.Wpf.DataGrid.Views;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Animation;
|
|
using System.Diagnostics;
|
|
|
|
namespace Xceed.Wpf.Toolkit.LiveExplorer.Samples.Theming.Views
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for ThemingCoreWPFView.xaml
|
|
/// </summary>
|
|
public partial class ThemingCoreWPFView : DemoView
|
|
{
|
|
#if !OPEN_SOURCE
|
|
#region Members
|
|
|
|
public static string DefaultSearchString = "type in your search";
|
|
private Storyboard _progressStoryboard = null;
|
|
private Brush _accentBrush = new SolidColorBrush( System.Windows.Media.Color.FromRgb( 255, 152, 29 ) );
|
|
private Brush whiteBrush = new SolidColorBrush(Colors.White);
|
|
private Brush blackBrush = new SolidColorBrush(Colors.Black);
|
|
|
|
#endregion
|
|
|
|
#region Properties
|
|
|
|
public ObservableCollection<Xceed.Wpf.Samples.SampleData.Product> Products
|
|
{
|
|
get
|
|
{
|
|
return Xceed.Wpf.Samples.SampleData.SampleDataProvider.GetProducts();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
#endif
|
|
|
|
#region Constructors
|
|
|
|
public ThemingCoreWPFView()
|
|
{
|
|
#if !OPEN_SOURCE
|
|
this.Initialized += new EventHandler( WPFControlsThemes_Initialized );
|
|
DataContext = this;
|
|
#endif
|
|
InitializeComponent();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#if !OPEN_SOURCE
|
|
|
|
#region EventHandlers
|
|
|
|
private void RadioButton_Checked( object sender, RoutedEventArgs e )
|
|
{
|
|
RadioButton button = sender as RadioButton;
|
|
if( button == null )
|
|
return;
|
|
|
|
_accentBrush = button.Background;
|
|
if( _accentBrush == null )
|
|
return;
|
|
|
|
if( themeComboBox.SelectedItem == null )
|
|
return;
|
|
|
|
if( themeComboBox.SelectedItem.Equals( metroDarkComboBoxItem ) )
|
|
{
|
|
this.ChangeMetroTheme( new Xceed.Wpf.Themes.Metro.MetroDarkThemeResourceDictionary() );
|
|
|
|
}
|
|
else if( themeComboBox.SelectedItem.Equals( metroLightComboBoxItem ) )
|
|
{
|
|
this.ChangeMetroTheme( new Xceed.Wpf.Themes.Metro.MetroLightThemeResourceDictionary() );
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Methods (Private)
|
|
|
|
private void WPFControlsThemes_Initialized( object sender, EventArgs e )
|
|
{
|
|
themeComboBox.SelectedIndex = 0;
|
|
}
|
|
|
|
private void SystemComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
_accentColorPanel.Visibility = Visibility.Hidden;
|
|
ChangeTheme( null, null, null, null, null, SystemColors.WindowBrush );
|
|
}
|
|
|
|
private void Office2007BlueComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
_accentColorPanel.Visibility = Visibility.Hidden;
|
|
ChangeTheme( new Xceed.Wpf.Themes.Office2007.Office2007BlueResourceDictionary(), null, null, null, null,
|
|
Xceed.Wpf.Themes.Office2007.Office2007BlueResources.ApplicationBackgroundBrush );
|
|
}
|
|
|
|
private void Office2007SilverComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
_accentColorPanel.Visibility = Visibility.Hidden;
|
|
ChangeTheme( new Xceed.Wpf.Themes.Office2007.Office2007SilverResourceDictionary(), null, null, null, null,
|
|
Xceed.Wpf.Themes.Office2007.Office2007SilverResources.ApplicationBackgroundBrush );
|
|
}
|
|
|
|
private void Office2007BlackComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
_accentColorPanel.Visibility = Visibility.Hidden;
|
|
ChangeTheme( new Xceed.Wpf.Themes.Office2007.Office2007BlackResourceDictionary(),
|
|
Xceed.Wpf.Themes.Office2007.Office2007BlackResources.ApplicationLightBackgroundBrush,
|
|
Xceed.Wpf.Themes.Office2007.Office2007BlackResources.BorderBrush,
|
|
Xceed.Wpf.Themes.Office2007.Office2007BlackResources.ApplicationLightBackgroundBrush,
|
|
Xceed.Wpf.Themes.Office2007.Office2007BlackResources.ApplicationLightBackgroundBrush,
|
|
Xceed.Wpf.Themes.Office2007.Office2007BlackResources.ApplicationBackgroundBrush );
|
|
}
|
|
|
|
private void Windows10ComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
_accentColorPanel.Visibility = Visibility.Hidden;
|
|
ChangeTheme( new Xceed.Wpf.Themes.Windows10.Windows10ResourceDictionary(), null, null, null, null,
|
|
Xceed.Wpf.Themes.Windows10.Windows10Resources.ApplicationBackgroundBrush );
|
|
}
|
|
|
|
private void MetroDarkComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
this.ChangeMetroTheme( new Xceed.Wpf.Themes.Metro.MetroDarkThemeResourceDictionary() );
|
|
}
|
|
|
|
private void MetroLightComboBoxItem_Selected( object sender, RoutedEventArgs e )
|
|
{
|
|
this.ChangeMetroTheme( new Xceed.Wpf.Themes.Metro.MetroLightThemeResourceDictionary() );
|
|
}
|
|
|
|
private void ChangeTheme( Xceed.Wpf.Themes.ThemeResourceDictionary theme, Brush groupBoxBackgroundBrush, Brush groupBoxBorderBrush,
|
|
Brush treeViewBackgroundBrush, Brush treeViewBorderBrush, Brush sampleBackgroundBrush )
|
|
{
|
|
SampleBorder.Resources.MergedDictionaries.Clear();
|
|
|
|
if( theme != null )
|
|
{
|
|
//# The licenser will throw on the second call to this if we set a empty key
|
|
//# line if we set an empty key.
|
|
//# See Licenser.LicenseKey {set;}, "Detect that license was set too soon".
|
|
if( !string.IsNullOrEmpty( Xceed.Wpf.Toolkit.Licenser.LicenseKey ) )
|
|
{
|
|
theme.LicenseKey = Xceed.Wpf.Toolkit.Licenser.LicenseKey;
|
|
}
|
|
SampleBorder.Resources.MergedDictionaries.Add( theme );
|
|
}
|
|
|
|
groupBoxBorder.Background = groupBoxBackgroundBrush == null ? Brushes.Transparent : groupBoxBackgroundBrush;
|
|
groupBoxBorder.BorderBrush = groupBoxBorderBrush == null ? Brushes.Transparent : groupBoxBorderBrush;
|
|
listItemTreeViewBorder.Background = treeViewBackgroundBrush == null ? Brushes.Transparent : treeViewBackgroundBrush;
|
|
listItemTreeViewBorder.BorderBrush = treeViewBorderBrush == null ? Brushes.Transparent : treeViewBorderBrush;
|
|
SampleBorder.Background = sampleBackgroundBrush;
|
|
}
|
|
|
|
private void ChangeMetroTheme( MetroThemeResourceDictionaryBase metroThemeResourceDictionary )
|
|
{
|
|
_accentColorPanel.Visibility = Visibility.Visible;
|
|
|
|
if( metroThemeResourceDictionary != null )
|
|
{
|
|
metroThemeResourceDictionary.AccentBrush = _accentBrush;
|
|
this.ChangeTheme( metroThemeResourceDictionary, null, null, null, null
|
|
, ( metroThemeResourceDictionary.GetType() == typeof( MetroDarkThemeResourceDictionary ) ) ? blackBrush : whiteBrush );
|
|
}
|
|
}
|
|
|
|
private void animatedProgressToggleButton_Checked( object sender, RoutedEventArgs e )
|
|
{
|
|
_progressStoryboard = rootLayout.Resources[ "animatedProgressBarStoryboard" ] as Storyboard;
|
|
_progressStoryboard.Begin();
|
|
}
|
|
|
|
private void animatedProgressToggleButton_Unchecked( object sender, RoutedEventArgs e )
|
|
{
|
|
if( _progressStoryboard != null )
|
|
_progressStoryboard.Stop();
|
|
}
|
|
|
|
private void TextBox_PreviewGotKeyboardFocus( object sender, System.Windows.Input.KeyboardFocusChangedEventArgs e )
|
|
{
|
|
System.Windows.Controls.TextBox textBox = sender as System.Windows.Controls.TextBox;
|
|
|
|
if( textBox != null && textBox.Text == ThemingCoreWPFView.DefaultSearchString )
|
|
textBox.Text = string.Empty;
|
|
}
|
|
|
|
private void TextBox_PreviewLostKeyboardFocus( object sender, System.Windows.Input.KeyboardFocusChangedEventArgs e )
|
|
{
|
|
System.Windows.Controls.TextBox textBox = sender as System.Windows.Controls.TextBox;
|
|
|
|
if( textBox != null && string.IsNullOrEmpty( textBox.Text ) )
|
|
textBox.Text = ThemingCoreWPFView.DefaultSearchString;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endif
|
|
}
|
|
}
|
|
|