我在自定义控件中尝试将它添加至主页面的LayoutRoot中出错,代码如下:
if (Application.Current.RootVisual is UserControl)
{
UserControl rootVisual = Application.Current.RootVisual as UserControl;
PropertyInfo prop = rootVisual.GetType().GetProperty("Content", BindingFlags.NonPublic | BindingFlags.Instance);
if (prop != null)
{
UIElement content = prop.GetValue(this, null) as UIElement;
if (content is Panel)
{
Panel panel = content as Panel;
panel.Children.Add(this);
}
}
}
这种类似的方法我也用过,不过对于复杂的控件或界面来说很难用编程控制。
代码不全也无法提供参考。
不过建议起初就把控件摆在page控件里面,显示属性设置为折叠隐藏,等到触发逻辑时,在后面编码再将其状态改为可见,比动态加载在某些地方会方便一些,仅供参考。
你这个问题也只能你自己找了