在按钮上鼠标右键,弹窗选择颜色:
private void Btn_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{Button btn = sender as Button;// 选择颜色int channelNum = int.Parse(btn.Content.ToString());if (!ChannelPlotDataItem_Dict.TryGetValue(channelNum, out ChannelPlotDataItem dataItem)){System.Windows.MessageBox.Show("通道" + channelNum + "当前未添加到任何图表,不允许修改颜色。");// 可以考虑修改成toast,放在按钮旁边显示,但是toast的显示时间貌似不可控,可能会影响用户下一步操作return;}var picker = SingleOpenHelper.CreateControl<ColorPicker>();var window = new PopupWindow{PopupElement = picker,WindowStartupLocation = WindowStartupLocation.CenterScreen,AllowsTransparency = true,WindowStyle = WindowStyle.None,MinWidth = 0,MinHeight = 0,Title = "请选择通道线条色",Owner = null};picker.SelectedColorChanged += (object sender1, HandyControl.Data.FunctionEventArgs<Color> e1) =>{btn.Background = new SolidColorBrush(e1.Info);// 修改对应通道线的颜色if (dataItem.LineSeries != null){//dataItem.LineSeries.LineStyle.Color = e1.Info;dataItem.LineSeries.Line.Stroke = e1.Info;}};picker.Canceled += delegate { window.Close(); };picker.Confirmed += delegate{window.Close();};window.Show();
}
