public EditValueWindow(KeyVal val) { var hndl = new WindowInteropHelper(this).EnsureHandle(); IntPtr brush = CreateSolidBrush(uint.MinValue); SetClassLong(hndl, -10, brush); SetWindowTheme(hndl, "DarkMode_Explorer", IntPtr.Zero); int attrValue = 1; //TRUE DwmSetWindowAttribute(hndl, 20, ref attrValue, Marshal.SizeOf(typeof(int))); //DARK THEME ^ currentKeyVal = val; InitializeComponent(); ValueNameTextBox.Text = val.Name; if (val.DataTypeEnum == DataTypeEnum.RegUwpString) { var componentControl = new StringComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(250); ResizeMode = System.Windows.ResizeMode.CanResizeWithGrip; } else if (val.DataTypeEnum == DataTypeEnum.RegUwpBoolean) { var componentControl = new BooleanComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else if ((int)val.DataTypeEnum >= (int)DataTypeEnum.RegUwpByte && (int)val.DataTypeEnum <= (int)DataTypeEnum.RegUwpDouble) //byte, int16, uint16, int32, uint32, int64, uint64, double, single { var componentControl = new IntComponent(val.DataTypeEnum); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else if (val.DataTypeEnum == DataTypeEnum.RegUwpDateTimeOffset) { var componentControl = new DateTimeOffsetComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else if (val.DataTypeEnum == DataTypeEnum.RegUwpChar) { var componentControl = new CharComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else if (val.DataTypeEnum == DataTypeEnum.RegUwpGuid) { var componentControl = new GuidComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else if (val.DataTypeEnum == DataTypeEnum.RegUwpRect) { var componentControl = new RectComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else if (val.DataTypeEnum == DataTypeEnum.RegUwpPoint || val.DataTypeEnum == DataTypeEnum.RegUwpSize) { var componentControl = new PointSizeComponent(val.DataTypeEnum); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(154); } else { unimplementedTxt.Visibility = System.Windows.Visibility.Visible; } Title = $"Edit value [type: {val.DataTypeEnum}]"; valueDataSet?.SetValueData(val.Data); if (valueDataSet != null) { valueDataSet.PropertyChanged += ValueDataSet_PropertyChanged; } }
private void ValueTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { var hndl = new WindowInteropHelper(this).EnsureHandle(); IntPtr brush = CreateSolidBrush(uint.MinValue); SetClassLong(hndl, -10, brush); SetWindowTheme(hndl, "DarkMode_Explorer", IntPtr.Zero); int attrValue = 1; //TRUE DwmSetWindowAttribute(hndl, 20, ref attrValue, Marshal.SizeOf(typeof(int))); //DARK THEME ^ var val = (DataTypeEnum)ValueTypeComboBox.SelectedItem; if (valueDataSet != null) { valueDataSet.PropertyChanged -= ValueDataSet_PropertyChanged; valueDataSet = null; ContainerGrid.Children.Clear(); //TODO: additional check when "if key !exists" is implemented OkButton.IsEnabled = true; } if (val == DataTypeEnum.RegUwpString) { var componentControl = new StringComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(250); ResizeMode = ResizeMode.CanResizeWithGrip; } else if (val == DataTypeEnum.RegUwpBoolean) { var componentControl = new BooleanComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } else if ((int)val >= (int)DataTypeEnum.RegUwpByte && (int)val <= (int)DataTypeEnum.RegUwpDouble) //byte, int16, uint16, int32, uint32, int64, uint64, double, single { var componentControl = new IntComponent(val); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } else if (val == DataTypeEnum.RegUwpDateTimeOffset) { var componentControl = new DateTimeOffsetComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } else if (val == DataTypeEnum.RegUwpChar) { var componentControl = new CharComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } else if (val == DataTypeEnum.RegUwpGuid) { var componentControl = new GuidComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } else if (val == DataTypeEnum.RegUwpRect) { var componentControl = new RectComponent(); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } else if (val == DataTypeEnum.RegUwpPoint || val == DataTypeEnum.RegUwpSize) { var componentControl = new PointSizeComponent(val); ContainerGrid.Children.Add(componentControl); valueDataSet = componentControl; SetMinHeightAndHeight(210); ResizeMode = ResizeMode.NoResize; } valueDataSet.PropertyChanged += ValueDataSet_PropertyChanged; }