public TextEditorColorControl() { InitializeComponent(); GridIndexProvider grid = new GridIndexProvider(3, 5); int row; int col; grid.Next(out row, out col); _qcsCurrent.PreviewColorChanged += delegate(object sender, Color value) { _changeSelectionToColor(value.ToGrfColor(), null); }; while (grid.Next(out row, out col)) { QuickColorSelector selector = new QuickColorSelector(); selector.SetValue(Grid.RowProperty, row); selector.SetValue(Grid.ColumnProperty, col); selector.Init(new ConfigAskerSetting(SdeAppConfiguration.ConfigAsker, "[Server database editor - CI - Id - Color #" + grid.Current + "]", _getDefault(grid.Current)), false, true); selector.OverrideMargin = new Thickness(1); selector.Height = 20; selector.PreviewMouseRightButtonUp += delegate { selector.Show(); }; selector.PreviewMouseLeftButtonUp += delegate(object sender, MouseButtonEventArgs e) { _changeSelectionToColor(selector.Color.ToGrfColor(), e); }; _grid.Children.Add(selector); } }
private void _set(QuickColorSelector qcs, Func <GrfColor> get, Action <GrfColor> set) { qcs.Color = get().ToColor(); qcs.Init(SdeAppConfiguration.ConfigAsker.RetrieveSetting(() => get())); qcs.ColorChanged += delegate(object sender, Color value) { set(value.ToGrfColor()); _update(); }; qcs.PreviewColorChanged += delegate(object sender, Color value) { SdeAppConfiguration.ConfigAsker.IsAutomaticSaveEnabled = false; set(value.ToGrfColor()); SdeAppConfiguration.ConfigAsker.IsAutomaticSaveEnabled = true; _update(); }; }