コード例 #1
0
        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;
            }));
        }
コード例 #2
0
        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();
        }