我有一个WPF用户控件,我有一个StackPanel。在这个面板中,我以这种方式以编程方式添加标签(Container是StackPanel的名称):
public void Insert(string Value)
{
Label l = new Label();
l.Content = Value;
Container.Children.Add(l);
}
现在我想在用户点击标签时提供一些公共事件SelectedIndexChange。现在我有一个问题,如何确定点击了哪个标签。有人可以帮忙吗?
答案 0 :(得分:1)
如果在Insert
中添加了该行:
l.Click += ClickHandler;
然后ClickHandler的第一个参数将是引发Click事件的控件。
e.g。如果您的处理程序是:
private void ClickHandler(object sender, RoutedEventArgs e){...};
然后sender
将成为点击的标签。
您也可以查看e.OriginalSource
。
答案 1 :(得分: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;
}
}
}