public ChatWindowColorViewModel(IChatWindowColorSetting setting) { Foreground = new SolidColorBrush(setting.ForegroundColor); Background = new SolidColorBrush(setting.BackgroundColor); AssignToSetting(setting); }
public ChatWindowColorViewModel(IChatWindowColorSetting setting) { Foreground = new SolidColorBrush(setting.ForegroundColor); Background = new SolidColorBrush(setting.BackgroundColor); AssignToSetting(setting); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }