批量修改子对象的外观,利用VisualTreeHelper来完成
private void ListItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
List<Border> borderList = FindVisualChild<Border>(对象名);
foreach (Border myBorder in borderList)
{
myBorder.BorderThickness = new Thickness(0);
}
}
/// <summary>
/// 利用VisualTreeHelper寻找对象的子级对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dependencyObject"></param>
/// <returns></returns>
List<T> FindVisualChild<T>(DependencyObject dependencyObject) where T : DependencyObject
{
try
{
List<T> TList = new List<T> { };
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(dependencyObject); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(dependencyObject, i);
if (child != null && child is T)
{
TList.Add((T)child);
List<T> childOfChildren = FindVisualChild<T>(child);
if (childOfChildren != null)
{
TList.AddRange(childOfChildren);
}
}
else
{
List<T> childOfChildren = FindVisualChild<T>(child);
if (childOfChildren != null)
{
TList.AddRange(childOfChildren);
}
}
}
return TList;
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return null;
}
}