Ejemplo n.º 1
0
        public ChatWindowColorViewModel(IChatWindowColorSetting setting)
        {
            Foreground = new SolidColorBrush(setting.ForegroundColor);
            Background = new SolidColorBrush(setting.BackgroundColor);

            AssignToSetting(setting);
        }
Ejemplo n.º 2
0
        public ChatWindowColorViewModel(IChatWindowColorSetting setting)
        {
            Foreground = new SolidColorBrush(setting.ForegroundColor);
            Background = new SolidColorBrush(setting.BackgroundColor);

            AssignToSetting(setting);
        }
Ejemplo n.º 3
0
 /// <summary>プロパティ変更をモデルに流す</summary>
 /// <param name="setting">設定内容を持ってるモデル</param>
 private void AssignToSetting(IChatWindowColorSetting setting)
 {
     PropertyChanged += (_, e) =>
     {
         if(e.PropertyName == nameof(Foreground))
         {
             setting.ForegroundColor = Foreground.Color;
         }
         else if(e.PropertyName == nameof(Background))
         {
             setting.BackgroundColor = Background.Color;
         }
     };
     PropertyChangedEventManager.AddHandler(setting, OnModelPropertyChanged, string.Empty);
 }
Ejemplo n.º 4
0
 /// <summary>プロパティ変更をモデルに流す</summary>
 /// <param name="setting">設定内容を持ってるモデル</param>
 private void AssignToSetting(IChatWindowColorSetting setting)
 {
     PropertyChanged += (_, e) =>
     {
         if (e.PropertyName == nameof(Foreground))
         {
             setting.ForegroundColor = Foreground.Color;
         }
         else if (e.PropertyName == nameof(Background))
         {
             setting.BackgroundColor = Background.Color;
         }
     };
     PropertyChangedEventManager.AddHandler(setting, OnModelPropertyChanged, string.Empty);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// モデルおよび設定を用いてインスタンスを初期化します。
        /// </summary>
        /// <param name="model">必要な描画物を実際に用意するモデル</param>
        /// <param name="mainWindow">位置決めに使うための親ウィンドウ</param>
        /// <param name="shownCharacterNameSetting">表示名の設定</param>
        /// <param name="textSetting">テキストのフォント設定</param>
        /// <param name="colorSetting">色の設定</param>
        /// <param name="layoutSetting">配置の設定</param>
        public ChatWindowViewModel(
            IChatWindowModel model,
            IMainWindow mainWindow,
            IShownCharacterNameSetting shownCharacterNameSetting,
            IChatWindowTextSetting textSetting,
            IChatWindowColorSetting colorSetting
            )
        {
            Position = new ChatWindowPositionViewModel(model.Position);

            CharacterName = new ShownCharacterNameViewModel(shownCharacterNameSetting);
            TextFont      = new ChatWindowTextViewModel(textSetting);
            Color         = new ChatWindowColorViewModel(colorSetting);

            Appearance = new ChatWindowAppearanceViewModel(this);

            AssignToModel(model);
            SyncTopmostToMainWindow(mainWindow);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// モデルおよび設定を用いてインスタンスを初期化します。
        /// </summary>
        /// <param name="model">必要な描画物を実際に用意するモデル</param>
        /// <param name="mainWindow">位置決めに使うための親ウィンドウ</param>
        /// <param name="shownCharacterNameSetting">表示名の設定</param>
        /// <param name="textSetting">テキストのフォント設定</param>
        /// <param name="colorSetting">色の設定</param>
        /// <param name="layoutSetting">配置の設定</param>
        public ChatWindowViewModel(
            IChatWindowModel model,
            IMainWindow mainWindow,
            IShownCharacterNameSetting shownCharacterNameSetting,
            IChatWindowTextSetting textSetting,
            IChatWindowColorSetting colorSetting
            )
        {
            Position = new ChatWindowPositionViewModel(model.Position);

            CharacterName = new ShownCharacterNameViewModel(shownCharacterNameSetting);
            TextFont = new ChatWindowTextViewModel(textSetting);
            Color = new ChatWindowColorViewModel(colorSetting);

            Appearance = new ChatWindowAppearanceViewModel(this);

            AssignToModel(model);
            SyncTopmostToMainWindow(mainWindow);
        }