|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Windows.Controls;
namespace CommonUtils
{
public class VisualTreeUtils
{
public static T FindVisualChildByName<T>(DependencyObject parent, string name) where T : DependencyObject
{
string controlName = parent.GetValue(Control.NameProperty) as string;
if (controlName == name)
return parent as T;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(parent, i);
T result = FindVisualChildByName<T>(child, name);
if (result != null)
return result;
}
return null;
}
}
public class LogicalTreeUtils
{
public static T FindLogicalChildByName<T>(DependencyObject parent, string name) where T : DependencyObject
{
string controlName = parent.GetValue(Control.NameProperty) as string;
if (controlName == name)
return parent as T;
foreach (object obj in LogicalTreeHelper.GetChildren(parent))
{
if (obj is DependencyObject)
{
T result = FindLogicalChildByName<T>(obj as DependencyObject, name);
if (result != null)
return result;
}
}
return null;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.