修改命名空间
This commit is contained in:
51
ShrlAlgoToolkit.RevitCore/Assists/VisualAssist.cs
Normal file
51
ShrlAlgoToolkit.RevitCore/Assists/VisualAssist.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace ShrlAlgoToolkit.RevitCore.Assists;
|
||||
|
||||
public static class VisualAssist
|
||||
{
|
||||
public static T FindVisualParent<T>(FrameworkElement element, string name)
|
||||
where T : FrameworkElement
|
||||
{
|
||||
var parentElement = (FrameworkElement)VisualTreeHelper.GetParent(element);
|
||||
while (parentElement != null)
|
||||
{
|
||||
if (parentElement is T parent)
|
||||
{
|
||||
if (parentElement.Name == name)
|
||||
{
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
|
||||
parentElement = (FrameworkElement)VisualTreeHelper.GetParent(parentElement);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static T FindVisualChild<T>(FrameworkElement element, string name)
|
||||
where T : Visual
|
||||
{
|
||||
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(element); i++)
|
||||
{
|
||||
var childElement = (FrameworkElement)VisualTreeHelper.GetChild(element, i);
|
||||
if (childElement is T child)
|
||||
{
|
||||
if (childElement.Name == name)
|
||||
{
|
||||
return child;
|
||||
}
|
||||
}
|
||||
|
||||
var descendent = FindVisualChild<T>(childElement, name);
|
||||
if (descendent != null)
|
||||
{
|
||||
return descendent;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user