Esempio n. 1
0
        /// <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");
        }
Esempio n. 2
0
        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);
                    }
                }
            }));
        }