博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SilverLight在aspx页面调用自定义的控件
阅读量:6300 次
发布时间:2019-06-22

本文共 1923 字,大约阅读时间需要 6 分钟。

需要在不同的aspx页面调用不同的usercontrol控件,需要修改App.xaml.cs中Application_Startup函数中的代码,因为silverlight中都是从这个函数中去调用xaml文件的。

方法1,修改App.xaml.cs代码如下:

private void Application_Startup(object sender, StartupEventArgs e)        {            //this.RootVisual = new MainPage();            if (!e.InitParams.ContainsKey("InitPage"))            {                this.RootVisual = new MainPage();                return;            }                        switch(e.InitParams["InitPage"])            {                case "ConfrimBox":                    this.RootVisual = new ConfrimBox();                    return;                default :                    this.RootVisual = new ConfrimBox();                    return;            }        }

 

 其中index.aspx的代码如下:、

注意看标红的一行代码,这行代码里面指定了param参数InitParams,并且key为"InitPage",value为"ConfrimBox"

这时再看Application_Startup函数中的代码,根据判断是否带有InitParams参数,如果则根据其value值打开相应的UserControl.

方法2:从第一种方式我们看出了弊端,实际项目中不可能这么去写switch,那还不写死去,所以我们想到了反射,代码如下:

 

//使用反射            //----------------------------反射方法1--------------------------------------//            //Assembly assembly = Assembly.GetExecutingAssembly();                //string rootName = string.Format("SecondTest.{0}", e.InitParams["InitPage"]);            //UIElement rootVisual = assembly.CreateInstance(rootName) as UIElement;            //this.RootVisual = rootVisual;            //---------------------------------反射方法2----------------------------------//            String rootName = String.Format("SecondTest.{0}", e.InitParams["InitPage"]);            Type type = Type.GetType(rootName);            UIElement rootVisual = Activator.CreateInstance(type) as UIElement;            this.RootVisual = rootVisual;

这样就可以实现我们的要求了。

 

 

 

转载于:https://www.cnblogs.com/bianlan/archive/2013/03/08/2949382.html

你可能感兴趣的文章
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>