private void OnLoaded(object sender, RoutedEventArgs e) { if (!(GetTemplateChild("PART_MoreColors") is FluentMenuItem moreColors)) { return; } EventManager.RegisterClassHandler(moreColors.GetType(), MenuItem.ClickEvent, new RoutedEventHandler((s, args) => { if (moreColors != s) { return; } var colorChoose = new ColorChooserWindow { Owner = Window.GetWindow(this) }; colorChoose.ActionComplete += (o, eventArgs) => { var color = eventArgs.Color; if (RecentColors.Contains(color)) { RecentColors.Remove(color); } RecentColors.Insert(0, color); if (GetTemplateChild("PART_RecentColorsListBox") is ListBox recentColors) { recentColors.SelectedIndex = 0; } }; colorChoose.ShowDialog(); args.Handled = true; })); }
private void Button_Click(object sender, RoutedEventArgs e) { var window = new ColorChooserWindow(Color) { Owner = Window.GetWindow(this) }; window.ActionComplete += (o, args) => Dispatcher.Invoke(() => Color = args.Color); window.ShowDialog(); }