如何在其它页面调用usercontrol
UserControl rootPage = Application.Current.RootVisual as UserControl;
Panel panel = VisualTreeHelper.GetChild(rootPage, 0) as Panel;
if (mifo == null)
{
mifo = new UC_MeterInfo();
mifo.Visibility = Visibility.Visible;
panel.Children.Add(mifo);
}
就是自己写了一个用户控件,现在在别的页面想调用出来,网上找的一些代码,测试上面的不行。
[解决办法]
调用自定义控件,分两种,
1. 静态调用
在Xaml头部声明自定义文件类库,然后在Xaml代码中声明自定义控件实例;
2. 动态调用
在后台代码中声明自定义控件对象实例,将自定义控件添加到视图树中。
详细请看:
http://silverlightchina.net/html/tips/2010/0818/1776.html
[解决办法]
同一个项目中。Usercontrol编译后,在控件的工具栏中也会找到这个自定义的控件。直接拖拽就行。
[解决办法]
动态编译??还是静态!
要是静态重新生成后直接在工具箱里面托到页面就行了
要是动态加载给你个代码:
var PlugPath = DataBase.DataService.Instance.SystemUIConfig.Complaint.Path; Assembly assembly = Assembly.GetExecutingAssembly(); Type[] TList = assembly.GetTypes(); var ThisT = from p in TList where p.FullName == PlugPath select p; if (ThisT == null || ThisT.Count() == 0) { MessageBox.Show("生成投诉单配置不正确"); return; } var control = System.Activator.CreateInstance(ThisT.First(), Id, MyParams); Plug = (IControl)control; Plug.SetValue(System.Windows.Controls.Grid.ColumnProperty, 0); Plug.SetValue(System.Windows.Controls.Grid.RowProperty, 0); LayoutRoot.Children.Add((UserControl)control);
[解决办法]
那就直接用子窗体嘛!页面的美观可以看看网上的例子!用Blend想怎么画都可以啊!