如何确定在WPF UserControl中单击了哪个控件

本文关键字:控件 单击 何确定 WPF UserControl | 更新日期: 2023-09-27 18:10:21

我有一个WPF用户控件,其中我有一个StackPanel。对于这个面板,我以编程方式添加标签(容器是StackPanel的名称):

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

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

如何确定在WPF UserControl中单击了哪个控件

如果在Insert中添加一行:

l.Click += ClickHandler;

则ClickHandler的第一个参数将是引发Click事件的控件。

。如果你的处理器是:

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

sender为被点击的标签。

你也可以看看e.OriginalSource

I Guess You Can Use This Code

 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;
                }
            }
        }