C# 从RoutedEventArgs启用鼠标按钮EventArgs
现在我有代码,用户可以在画布上单击,它会放置一个黄色节点,然后弹出一个窗口询问有关该节点的信息。我试图让用户首先从菜单上的两个选项中选择一个选项,然后他们可以在画布上单击。我似乎无法理解这一点,我相信这很简单。我有一个用于按下的MouseButtonEventArgs方法,但我无法将其与用于单击菜单选项的RoutedeventArgs方法联系起来。有什么建议吗 所以基本上我想知道是否有一种方法可以使MouseButtonEventArgs方法不能使用,除非首先选择RoutedEventArgs方法。也就是说,除非首先选择(单击)菜单选项,否则用户不能在画布上单击(addNode_MouseDown(object sender,MouseButtonEventArgs E)(此处为meunMethod_(object sender,RoutedVentargs E)) 下面是我现在添加节点的方法:C# 从RoutedEventArgs启用鼠标按钮EventArgs,c#,wpf,xaml,mouseevent,C#,Wpf,Xaml,Mouseevent,现在我有代码,用户可以在画布上单击,它会放置一个黄色节点,然后弹出一个窗口询问有关该节点的信息。我试图让用户首先从菜单上的两个选项中选择一个选项,然后他们可以在画布上单击。我似乎无法理解这一点,我相信这很简单。我有一个用于按下的MouseButtonEventArgs方法,但我无法将其与用于单击菜单选项的RoutedeventArgs方法联系起来。有什么建议吗 所以基本上我想知道是否有一种方法可以使MouseButtonEventArgs方法不能使用,除非首先选择RoutedEventArgs方
private void addNode_MouseDown(object sender, MouseButtonEventArgs e)
{
Point currentPoint = new Point();
if (e.ButtonState == MouseButtonState.Pressed)
currentPoint = e.GetPosition(this);
Ellipse ellipse = new Ellipse();
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 255, 255, 0);
ellipse.Fill = mySolidColorBrush;
ellipse.Width = 10;
ellipse.Height = 10;
Canvas.SetLeft(ellipse, e.GetPosition(canvas1).X);
Canvas.SetTop(ellipse, e.GetPosition(canvas1).Y);
canvas1.Children.Add(ellipse);
InputPopupWindow popup = new InputPopupWindow();
popup.ShowDialog();
}
XAML:
我创建了两个单独的方法来检查是否使用IsChecked选择了每个选项,并将每个选项订阅到各自的方法 例如:
<MenuItem Header="_Add" >
<MenuItem Header="_Known Object" x:Name="known_Object" IsCheckable="False" Click="addKnown_Object" />
然后,实际放置节点的方法首先检查各个选择的.IsChecked是否为真
如果有更简单的方法,请让我知道!试着弄清楚你的问题与更多人的关系,而不仅仅是你。如果不是,请删除它。好的,我编辑了它。
<MenuItem Header="_Add" >
<MenuItem Header="_Known Object" x:Name="known_Object" IsCheckable="False" Click="addKnown_Object" />
private void addKnown_Object(object sender, RoutedEventArgs e)
{
known_Object.IsChecked = true;
}