C#WPF设置标记=所有控件的名称

本文关键字:控件 设置 C#WPF | 更新日期: 2023-09-27 18:21:52

我有一个项目,有各种控件,有些有名称,有些没有。我想循环所有控件,并在出现时自动设置Tag=Name。我见过像这样的各种解决方案:

WPF:如何循环浏览窗口中的所有控件?

这是有效的,但我无法设置:

foreach (Visual ctrl in MainGrid.GetChildren())
{
    ctrl.Tag = ctrl.Name;<------
}

对我来说,标签是用来识别按下不同按钮时的事件。ThanxPatrick

C#WPF设置标记=所有控件的名称

Tag属性仅存在于FrameworkElements

所以你需要做一个演员阵容:

foreach (Visual ctrl in MainGrid.GetChildren())
{
    FrameworkElement fxElt = ctrl as FrameworkElement;
    if( fxElt != null)
        fxElt.Tag = fxElt.Name;
}

问候