如何从xaml中的此结构中获取代码中的按钮?
id_token
我尝试使用名称
试图从许多id_token
es
答案 0 :(得分:1)
您可以使用VisualTreeHelper
获取窗口当前可视树上的元素。
为方便起见,您可以使用以下扩展方法,该方法可以在可视树上以递归方式查找具有指定类型或条件的所有子元素。
public static class DependencyObjectExtensions
{
public static IEnumerable<T> GetChildren<T>(this DependencyObject p_element, Func<T, bool> p_func = null) where T : UIElement
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(p_element); i++)
{
UIElement child = VisualTreeHelper.GetChild(p_element, i) as FrameworkElement;
if (child == null)
{
continue;
}
if (child is T)
{
var t = (T)child;
if (p_func != null && !p_func(t))
{
continue;
}
yield return t;
}
else
{
foreach (var c in child.GetChildren(p_func))
{
yield return c;
}
}
}
}
}
然后当窗口加载时,你可以得到这样的所有按钮:
var buttons = this.cat1.GetChildren<Button>().ToList();