2011-10-04 189 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; 
       } 
      } 
     } 
相關問題