GObject 的root 获取的对象有误

public GRoot root
{
get
{
GObject p = this;
//这里遍历了最顶层,导致如果我在GRoot.inst下面添加了自己创建GRoot会返回错误

while (p.parent != null)
p = p.parent;

if (p is GRoot)
return (GRoot)p;

if (p.displayObject != null && p.displayObject.parent != null)
{
DisplayObject d = p.displayObject.parent.GetChild("GRoot");
if (d != null && (d.gOwner is GRoot))
return (GRoot)d.gOwner;
}

return GRoot.inst;
}
}

GRoot gRoot = new GRoot();
GRoot.inst.AddChild(gRoot);
Window window = new Window();
window.ShowOn(gRoot );
window.Hide();//这里会导致关闭不了,因为获取root的时候,拿到的是GRoot.inst而不是gRoot 
已邀请:

谷主

赞同来自:

groot只有一个,不需要也不能自己创建。

要回复问题请先登录注册