Quantcast
Channel: Telerik Forums RSS
Viewing all articles
Browse latest Browse all 84751

Setting automatic textforecolor

$
0
0

Ok, first part nearly working , thanks.

I allow theme switching, so when switching from a dark theme to a ligth theme the forecolor has to be changed from white to dark/black, otherwise the entered (white) text is not readable.

1.) How to do this the xaml way, I guess I would have to bind the document's style forecolor to a dynamic resource??

This is what I have so far:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows;
usingSystem.Windows.Media;
usingTelerik.Windows.Controls;
 
namespaceNotizen.Infrastructure
{
    publicenumTheme
    {
        Expression_Dark,
        Green,
        Office2013,
        Office_Black,
        Office_Blue,
        Office__Silver,
        VisualStudio2013,
        Windows7,
        Windows8,
        Windows8Touch,       
         
    }
 
    publicenumColorVariation
    {       
        GreenDark,
        GreenLight,
        Office2013DarkGrey,
        Office2013LightGrey,
        Office2013White,
        VisualStudio2013Blue,
        VisualStudio2013Dark,
        VisualStudio2013Light
    }
 
    publicstaticclassThemeManager
    {
        publicstaticvoidChangeTheme(Theme theme)
        {
            ClearResourceDictionary();
 
            switch(theme)
            {
                caseTheme.Expression_Dark:
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Expression_Dark;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    //ChangeBackgroundStyle(new SolidColorBrush() { Color = Color.FromArgb(255, 28, 28, 28) });
                    ChangeBackGroundColor(Color.FromArgb(255, 28, 28, 28));
                    break;
                caseTheme.Office_Black:
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Black;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Black;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Black;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Black;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Black;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Black;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    ChangeBackGroundColor(Colors.White);
                    break;
                caseTheme.Office_Blue:
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Blue;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Blue;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Blue;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Blue;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Blue;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office_Blue;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.Office__Silver:
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office__Silver;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office__Silver;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office__Silver;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office__Silver;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office__Silver;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office__Silver;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.Windows8:
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() {  Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.Windows8Touch:
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8Touch;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8Touch;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8Touch;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8Touch;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8Touch;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows8Touch;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.Windows7:
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows7;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute)  });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows7;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows7;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows7;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows7;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Windows7;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.Office2013:
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office2013;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.VisualStudio2013:
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.VisualStudio2013;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    break;
                caseTheme.Green:
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Green;component/Themes/System.Windows.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Green;component/Themes/Telerik.Windows.Controls.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Green;component/Themes/Telerik.Windows.Controls.Input.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Green;component/Themes/Telerik.Windows.Controls.Navigation.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    Application.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Green;component/Themes/Telerik.Windows.Controls.Docking.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "/Telerik.Windows.Themes.Green;c;component/Themes/Telerik.Windows.Controls.GridView.xaml", uriKind: UriKind.RelativeOrAbsolute) });
                    //ChangeThemeVariation(ColorVariation.GreenDark);
                    break;
                default:
                    break;
            }
 
            App.Current.Resources.MergedDictionaries.Add(newResourceDictionary() { Source = newUri(uriString: "pack://application:,,,/Assets/styles.xaml", uriKind: UriKind.RelativeOrAbsolute) });
        }
 
        publicstaticvoidChangeThemeVariation(ColorVariation colorVariation)
        {
            switch(colorVariation)
            {
                caseColorVariation.GreenDark:
                    GreenPalette.LoadPreset(GreenPalette.ColorVariation.Dark);
                    ChangeBackGroundColor(Color.FromArgb(255, 45, 45, 48) );
                    break;
                caseColorVariation.GreenLight:
                    GreenPalette.LoadPreset(GreenPalette.ColorVariation.Light);
                    ChangeBackGroundColor(Colors.White);
                    break;
                caseColorVariation.Office2013DarkGrey:
                    Office2013Palette.LoadPreset(Office2013Palette.ColorVariation.DarkGray);
                    ChangeBackGroundColor(Colors.White);
                    break;
                caseColorVariation.Office2013LightGrey:
                    Office2013Palette.LoadPreset(Office2013Palette.ColorVariation.LightGray);
                    ChangeBackGroundColor(Colors.White);
                    break;
                caseColorVariation.Office2013White:
                    Office2013Palette.LoadPreset(Office2013Palette.ColorVariation.White);
                    ChangeBackGroundColor(Colors.White);
                    break;
                caseColorVariation.VisualStudio2013Blue:
                    VisualStudio2013Palette.LoadPreset(VisualStudio2013Palette.ColorVariation.Blue);
                    ChangeBackGroundColor(Colors.White);
                    break;
                caseColorVariation.VisualStudio2013Dark:
                    VisualStudio2013Palette.LoadPreset(VisualStudio2013Palette.ColorVariation.Dark);
                    ChangeBackGroundColor(Color.FromArgb(255, 45, 45, 48) );
                    break;
                caseColorVariation.VisualStudio2013Light:
                    VisualStudio2013Palette.LoadPreset(VisualStudio2013Palette.ColorVariation.Light);
                    ChangeBackGroundColor(Colors.White);
                    break;
                default:
                    break;
            }
        }
 
        publicstaticvoidClearResourceDictionary()
        {
            App.Current.Resources.MergedDictionaries.Clear();
 
        }
 
        privatestaticvoidChangeBackGroundColor(Color color)
        {
            Application.Current.Resources["ContainerBackgroundBrush"] = newSolidColorBrush() { Color = color };
            //((SolidColorBrush) Application.Current.Resources["ContainerBackgroundBrush"]).Color = color;
        }
 
        privatestaticvoidChangeBackgroundStyle(SolidColorBrush color)
        {
             
            Style style = newStyle
            {
                TargetType = typeof(System.Windows.Window)
            };
 
            style.Setters.Add(newSetter(Label.BackgroundProperty, color)); // Brushes.Aquamarine
 
            Application.Current.Resources["ContainerBackgroundStyle"] = null;
            Application.Current.Resources["ContainerBackgroundStyle"] = style;
        }
    }
}

 

2.) How to change the ActiveColor and AutomaticColor for the inbuilt minitoolbar?

Thanks again for any help.


Viewing all articles
Browse latest Browse all 84751

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>