2011-10-04 188 views
0

我有一个WPF用户控件,其中我有一个StackPanel。这个小组我加入编程标签这种方式(Container是StackPanel中的名称):如何确定在WPF UserControl中单击了哪个控件?

public void Insert(string Value) 
{ 
    Label l = new Label(); 
    l.Content = Value; 
    Container.Children.Add(l); 
} 

现在我想提供一些公共事件SelectedIndexChange,标签上,当用户点击。现在我有一个问题,如何确定哪个标签被点击。有人可以帮忙吗?

回答

1

如果Insert你添加一行:

l.Click += ClickHandler; 

然后clickHandler事件的第一个参数是引发Click事件的控制。

例如如果您的处理程序是:

private void ClickHandler(object sender, RoutedEventArgs e){...}; 

然后sender将是被点击的标签。

你也可以看看e.OriginalSource

+0

不准确的解决方案,但好点。 – deha

0

我想你可以使用此代码

l.MouseClick+= MouseClickHandler; 

,并切换标贴

之间

例:通过发送

private void label1_MouseDown(object sender, MouseButtonEventArgs e) 
     { 
      if (e.LeftButton== MouseButtonState.Pressed) 
      { 
       Label l = (Label)e.Source; 
       switch (l.Name) 
       { 
        case "lable1": 
         int a = 10; 
         break; 
       } 
      } 
     } 
相关问题