Other/Translator/VisualHelper.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
namespace Translator
{
public static class VisualHelper
{
public static TP GetParent<TP>(DependencyObject child, int i) where TP : DependencyObject
{
var parent = VisualTreeHelper.GetParent(child);
var logicalParent = LogicalTreeHelper.GetParent(child);
if (logicalParent is TP)
return logicalParent as TP;
if (i > 4 || parent == null || parent is TP)
return parent as TP;
return GetParent<TP>(parent, i + 1);
}
public static TP GetParent<TP>(DependencyObject child, Type stopWhen) where TP : Visual
{
var parent = VisualTreeHelper.GetParent(child);
var logicalParent = LogicalTreeHelper.GetParent(child);
if (logicalParent is TP)
return logicalParent as TP;
if (parent is TP)
return parent as TP;
if (parent == null || parent.GetType() == stopWhen)
return null;
return GetParent<TP>(parent, stopWhen);
}
public static T GetVisualChild<T>(Visual parent) where T : Visual
{
var child = default(T);
var numVisuals = VisualTreeHelper.GetChildrenCount(parent);
for (var i = 0; i < numVisuals; i++)
{
var v = (Visual)VisualTreeHelper.GetChild(parent, i);
child = v as T ?? GetVisualChild<T>(v);
if (child != null)
break;
}
return child;
}
public static T DeepCopy<T>(UIElement source) where T : new()
后面还有 23 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
