Panel panel = VisualTreeHelper.GetChild(rootPage, 0) as Panel;
if (mifo == null)
{
mifo = new UC_MeterInfo();
mifo.Visibility = Visibility.Visible;
panel.Children.Add(mifo);
}
就是自己写了一个用户控件,现在在别的页面想调用出来,网上找的一些代码,测试上面的不行。
7 个解决方案
#1
调用自定义控件,分两种,
1. 静态调用
在Xaml头部声明自定义文件类库,然后在Xaml代码中声明自定义控件实例;
2. 动态调用
在后台代码中声明自定义控件对象实例,将自定义控件添加到视图树中。
详细请看:
http://silverlightchina.net/html/tips/2010/0818/1776.html
1. 静态调用
在Xaml头部声明自定义文件类库,然后在Xaml代码中声明自定义控件实例;
2. 动态调用
在后台代码中声明自定义控件对象实例,将自定义控件添加到视图树中。
详细请看:
http://silverlightchina.net/html/tips/2010/0818/1776.html
#2
同一个项目中。Usercontrol编译后,在控件的工具栏中也会找到这个自定义的控件。直接拖拽就行。
#3
动态编译??还是静态!
要是静态重新生成后直接在工具箱里面托到页面就行了
要是动态加载给你个代码:
上面这个是相当于应反射机制做的,也就是说你可以通过配置文件或者xml来配置你要动态加载的控件。你看下
你要动态添加的方式就是通过下面的 括号后面就行了
要是静态重新生成后直接在工具箱里面托到页面就行了
要是动态加载给你个代码:
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);
上面这个是相当于应反射机制做的,也就是说你可以通过配置文件或者xml来配置你要动态加载的控件。你看下
你要动态添加的方式就是通过下面的 括号后面就行了
#4
当然是动态加载,我想让它像子窗体那样弹出来,但是用子窗体的样,不知道怎么修改界面的美观
#5
那就直接用子窗体嘛!页面的美观可以看看网上的例子!用Blend想怎么画都可以啊!
#6
子窗体那个标题怎么去掉啊,可以吗,那个标题好难看
#7
子窗体那个标题怎么去掉啊,可以吗,那个标题好难看
#1
调用自定义控件,分两种,
1. 静态调用
在Xaml头部声明自定义文件类库,然后在Xaml代码中声明自定义控件实例;
2. 动态调用
在后台代码中声明自定义控件对象实例,将自定义控件添加到视图树中。
详细请看:
http://silverlightchina.net/html/tips/2010/0818/1776.html
1. 静态调用
在Xaml头部声明自定义文件类库,然后在Xaml代码中声明自定义控件实例;
2. 动态调用
在后台代码中声明自定义控件对象实例,将自定义控件添加到视图树中。
详细请看:
http://silverlightchina.net/html/tips/2010/0818/1776.html
#2
同一个项目中。Usercontrol编译后,在控件的工具栏中也会找到这个自定义的控件。直接拖拽就行。
#3
动态编译??还是静态!
要是静态重新生成后直接在工具箱里面托到页面就行了
要是动态加载给你个代码:
上面这个是相当于应反射机制做的,也就是说你可以通过配置文件或者xml来配置你要动态加载的控件。你看下
你要动态添加的方式就是通过下面的 括号后面就行了
要是静态重新生成后直接在工具箱里面托到页面就行了
要是动态加载给你个代码:
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);
上面这个是相当于应反射机制做的,也就是说你可以通过配置文件或者xml来配置你要动态加载的控件。你看下
你要动态添加的方式就是通过下面的 括号后面就行了
#4
当然是动态加载,我想让它像子窗体那样弹出来,但是用子窗体的样,不知道怎么修改界面的美观
#5
那就直接用子窗体嘛!页面的美观可以看看网上的例子!用Blend想怎么画都可以啊!
#6
子窗体那个标题怎么去掉啊,可以吗,那个标题好难看
#7
子窗体那个标题怎么去掉啊,可以吗,那个标题好难看