private void SetTheme(MessageCommunicatorTheme theme)
        {
            switch (theme)
            {
            case MessageCommunicatorTheme.Light:
                this.Styles[0] = (StyleInclude)this.Resources["ThemeLight"];
                this.Styles[1] = (StyleInclude)this.Resources["ThemeLightCustom"];
                MessageCommunicatorGlobalProperties.Current.CurrentTheme = MessageCommunicatorTheme.Light;
                MessageBus.Current.SendMessage(new MessageThemeChanged(MessageCommunicatorTheme.Light));
                break;

            case MessageCommunicatorTheme.Dark:
                this.Styles[0] = (StyleInclude)this.Resources["ThemeDark"];
                this.Styles[1] = (StyleInclude)this.Resources["ThemeDarkCustom"];
                MessageCommunicatorGlobalProperties.Current.CurrentTheme = MessageCommunicatorTheme.Dark;
                MessageBus.Current.SendMessage(new MessageThemeChanged(MessageCommunicatorTheme.Dark));
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(theme), theme, null);
            }
        }
 public MessageThemeChanged(MessageCommunicatorTheme newTheme)
 {
     this.NewTheme = newTheme;
 }
 public MessageCommunicatorGlobalProperties()
 {
     this.CurrentTheme = MessageCommunicatorTheme.Light;
 }
 public MessageOSThemeChangeRequest(MessageCommunicatorTheme newTheme)
 {
     this.NewTheme = newTheme;
 }