/// <summary> /// Initializes a new instance of the <see cref="WindowStateSetting"/> class. /// </summary> public WindowStateSetting() { this.AddSetting(new Setting(new Binding("WindowState") { Converter = new LambdaConverter() { ConvertMethod = this.WindowStateConversion, ConvertBackMethod = this.WindowStateConversion } })); WindowSizeConverter windowSizeConverter = new WindowSizeConverter(); this.AddWindowSizeBinding(windowSizeConverter, "Left", "Left"); this.AddWindowSizeBinding(windowSizeConverter, "Top", "Top"); this.AddWindowSizeBinding(windowSizeConverter, "ActualWidth", "Width"); this.AddWindowSizeBinding(windowSizeConverter, "ActualHeight", "Height"); }
private void AddWindowSizeBinding(WindowSizeConverter windowSizeConverter, string sizeReadParameterName, string sizeWriteParameterName) { this.AddSetting(new Setting(new MultiBinding() { Converter = windowSizeConverter }.AddBindings( new Binding(sizeReadParameterName), new Binding("WindowState")), new Binding(sizeWriteParameterName) { Converter = new LambdaConverter() { ConvertMethod = (value, targetType, parameter, culture) => { Window window = (Window)this.Owner.Owner; if (window.WindowState != WindowState.Normal) { return(Setting.IgnoreValue); } return(value); } } })); }