一天未解决有关问题,请帮下小弟我,没有办法,今天要加班了

一天未解决问题,请帮下我,没有办法,今天要加班了
我这在一个Canvas里面,加载有很多的控件,例如按钮等;现在我右键出来一个菜单MENU菜单,菜单的内容是:菜单1、菜单2等;单击“菜单1”进入这个菜单的事件处理,我怎么判断在Canvas里面单击的具体按钮ID呢,很郁闷,不知道怎么写?
UIElement uid = new UIElement();
            
            uid=ContextMenuService.GetPlacementTarget(LogicalTreeHelper.GetParent(sender as MenuItem));
这个只能获取Canvas,获取不到单击了那个按钮,求大神相助;
------解决思路----------------------

private Button SelButton;
 private void RegButton()
        {
            Canvas can = new Canvas();
            foreach (UIElement ctl in can.Children)
            {
                if (ctl is Button)
                {
                    ctl.MouseDown += ctl_MouseDown;
                }
            }
        }

        void ctl_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            SelButton=sender as Button;
        }
然后在你的菜单事件中访问selbutton就可以了啊

------解决思路----------------------
private Button SelButton;
 private void RegButton(Canvas can)
        {
            foreach (UIElement ctl in can.Children)
            {
                if (ctl is Button)
                {
                    ctl.MouseDown += ctl_MouseDown;
                }
            }
        }
 
        void ctl_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            SelButton=sender as Button;
        }
------解决思路----------------------
引用:
Quote: 引用:

你是在 按钮上的右键??

恩,先单击按钮,然后右键单击出来 MENU菜单,然后进入MENU菜单的处理事件,怎么判断我是单击的那个按钮,这个按钮是CANVAS里面的按钮。

参见:http://blog.****.net/duanzi_peng/article/details/17094639  获取父元素。
------解决思路----------------------
引用:
Quote: 引用:

你右键菜单是Canvas的对吧,你现在是要判断,在那个控件(按钮上右键的?)

Canvas里面有很多按钮控件,我任意单击一个按钮,然后右键出来MENU菜单,在这个MENU菜单里怎么知道我单击了那个按钮?
右键菜单是MENU菜单,现在判断的单击了那个按钮?
右键菜单是绑哪里?控件还是Canvas 没说清楚啊
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你是在 按钮上的右键??

恩,先单击按钮,然后右键单击出来 MENU菜单,然后进入MENU菜单的处理事件,怎么判断我是单击的那个按钮,这个按钮是CANVAS里面的按钮。

参见:http://blog.****.net/duanzi_peng/article/details/17094639  获取父元素。


我说Canvas里面有很多控件类型,比如还有很多checkbox,botton,textbox等,我在任何一个控件上右键单击出来一个MENU菜单,例如MENU菜单里面有“功能1”,“功能2”,这时候我但是功能1,进入了这个MENU的处理事件,我要获取我是在Canvas里面的那个控件上单击出来MENU菜单的,其实就是这样的需求。



private UIElement CurUI;
 private void RegButton(Canvas can)
        {
            foreach (UIElement ctl in can.Children)
            {
                if (ctl is Button)
                {
                    ctl.MouseDown += ctl_MouseDown;
                }