| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | using InABox.Wpf;using System.Collections.Generic;using System.Windows;using System.Windows.Controls;namespace InABox.DynamicGrid{    /// <summary>    ///     Interaction logic for FormDesignerLength.xaml    /// </summary>    public partial class DynamicFormDesignLength : ThemableWindow    {        private readonly Dictionary<GridUnitType, string> types = new()        {            { GridUnitType.Auto, "Auto" },            { GridUnitType.Pixel, "Pixels" },            { GridUnitType.Star, "Percentage" }        };        public DynamicFormDesignLength(GridLength length)        {            InitializeComponent();            Type.ItemsSource = types;            GridLength = length;        }        public GridLength GridLength        {            get => new(Value.Value.Value, (GridUnitType)Type.SelectedValue);            set            {                Type.SelectedValue = value.GridUnitType;                Value.Value = value.Value;            }        }        private void OKClick(object sender, RoutedEventArgs e)        {            DialogResult = true;        }        private void CancelClick(object sender, RoutedEventArgs e)        {            DialogResult = true;        }        private void Type_SelectionChanged(object sender, SelectionChangedEventArgs e)        {            var newvalue = e.AddedItems.Count > 0 ? ((KeyValuePair<GridUnitType, string>)e.AddedItems[0]).Key : GridUnitType.Auto;            //var oldvalue = e.RemovedItems.Count > 0 ? ((KeyValuePair<GridUnitType, String>)e.RemovedItems[0]).Key : GridUnitType.Auto;            if (newvalue == GridUnitType.Star)            {                Value.Value = 1.0F;                Value.IsReadOnly = false;            }            else if (newvalue == GridUnitType.Auto)            {                Value.Value = 1.0F;                Value.IsReadOnly = true;            }            else if (newvalue == GridUnitType.Pixel)            {                Value.Value = 50.0F;                Value.IsReadOnly = false;            }        }    }}
 |