WPF中:未找到可以 register Name“XXX”的 NameScope

最近在WPF代码中遇到报错为:“未找到可以 register Name“Button0”的 NameScope”,在网上找了好久的方法,一直没有解决,后面突然发现不是没有办法,是理解错误。

在WPF中使用,WPF自带的皮肤,RegisterName这个方法就报错。

灵感来自https://msdn.microsoft.com/zh-cn/library/system.windows.frameworkelement.registername(v=vs.90).aspx

https://www.cnblogs.com/loveis715/archive/2012/04/09/2439803.html

Canvas cavCav =new Canvas();
NameScope.SetNameScope(cavCav, new NameScope());//此处是写给父容器的,一直解决不了这个问题就在这里,我之前一直是想着提示,然后将注册给了子控件。
Button bt = (Button)ui;
SvduControlNameListBox.Items.Add(tj(bt.Name, UIButton));
if (cavCav.FindName(bt.Name) == null)
{
    cavCav.RegisterName(bt.Name, bt);//注册名字,以便以后使用
}

 

posted on 2018-05-14 11:05  长安乐眠  阅读(501)  评论(0编辑  收藏  举报