Silverlight初学者的入门课程(5)
~ 29 ~
程序员之家
服务检索大量数据,没有上面 2 方面的缺点。 使用 WCF 从服务的获取 Session 数据到 Silverlight 控件,你需要做的是创建一个简 单的 WCF 访问。 这个服务应该有一个方法获取 Session 键值作为输入参数并返回 Session 对应的值,如下所示:
[OperationContract] public object GetSessionVariable(string key) { return System.Web.HttpContext.Current.Session[key]; }
第二十五章 创建 WCF 访问检索 Session 数据示例
创建一个新的 Silverlight 项目和具有承载 Silverlight 控件 Web 项目。 打开 Visual Studio 并选择菜单“文件”-> “新建”-> “项目” 步骤: 1. 打开 Visual Studio 并选择菜单“文件”-> “新建”-> “项目” 2. 在你喜欢的语言下面选择项目类型为“Silverlight”并选择“Silverlight 应用 程序”模板。这里我们选择的是 Visual C#。为项目命名为 “AccessSessionFromSilverlight”并选择“为解决方案创建目录”选项因此所有项 目文件多在文件夹结构中。 3. 在下一个对话框中,选择“为解决方案添加一个承载控件的 Web” 4. 在 Visual Studio 创建解决方案后,右键解决方案资源管理器中的 Web 项目并选择 “添加新项” 。 选择默认名字“Service1.svc”并按“添加”按钮。 5. 从对话框左边面板选择“Silverlight”类别。从右边面板,选择 “Silverlight-enabled WCF 服务”模板。 6. 选择默认名字“Service1.svc”并按“添加”按钮。 7. 你看到如下代码:
[ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service1 { [O
perationContract] public void DoWork() {
~ 30 ~
程序员之家
// 在此处添加操作实现 return; } // 在此处添加更多操作并使用 [OperationContract] 标记它
资料,教程,编程,文集
们 }
按如下显示添加新的方法:
[OperationContract] public object GetSessionVariable(string key) { return System.Web.HttpContext.Current.Session[key]; }
8. 打开解决方案资源管理器。右键“Service1.svc”文件并选择“设为起始页” 9. 按 Ctrl + F5 运行应用程序(或使用菜单“调试”–>“开始执行不调试”。 ) 在浏览器打开 Service1 元数据并显示。 忽略页面内容, 从浏览器复制 URL。 URL 类似于:
http://localhost:1873/Service1.svc
这个端口号可能会不同。 10. 回到 Visual Studio 的解决方案管理器。 右键 Silverlight 项目 (不是 Web 项目) 并选择“添加 Service 引用” 。 在地址域中,指定从浏览器中复制的 URL,点击“前往” 。 在底部左边,修改命名空间为“MySampleService” 。点击“确定”按钮添加服务引用。 现在可以从 Silverlight 客户端调用 WCF 服务。 按下面步骤测试: 1. 打开 Page1.xaml 文件并添加一个文本框用于显示从 WCF 方法返回的字符串。 2. 从 UserControl 中添加“Loaded”事件。 Page1.xaml 中的完整代码如下:
<Grid x:Name="LayoutRoot" Background="White">
~ 31 ~
程序员之家
<TextBlock x:Name="textblock1" Width="200" Height="30"></TextBlock> </Grid>
现在在后置代码中(Page1.xaml.cs)中,按如下方式添加 WCF 服务调用:
private void UserControl_Loaded(object sender, RoutedEventArgs e) { MyService.Service1Client client = new AccessSessionFromSilverlight.MyService.Service1Client(); client.GetSessionVariableCompleted += new EventHandler( client_GetSessionVariableCompleted); client.GetSessionVariableAsync("Name"); } void client_GetSessionVariableCompleted(object sender, AccessSessionFromSilverlight.MyService. GetSessionVariableCompletedEventArgs e) { if(e.Result == null) textblock1.Text = "Session variable not set"; else textblock1.Text = e.Result.ToString(); }
在解决方案资源管理器中打开 Web 项目,并设置 Silverlight 测试页面为起始页码。运 行项目。可以看到 Silverlight 客户端调用 WCF 服务的显示结果。
第二十六章 如何从 Silverlight 代码调用 Javascript 函数?
Silverlight 的一个优点是可以访问承载它的 Web 页面的 HTML 文档。 Silverlight 可 以访问 HTML 元素,因此也可以调用 Javascript 方法。 下面的步骤显示了如何在 Silverlight 中调用 JavaScript 方法。 打开承载 Silverlight 控件的 页面或 HTML 页面。添加 Javascrpit 方法, 如下所示:
打开 XAML 控件文件并添加一个按钮控件,如下所示:
<Grid x:Name="LayoutRoot" Background="White"> </Grid>
来到 XAML 页面的后台代
码文件,并添加按钮点击事件:
private void btnSayHello_Click(object sender, RoutedEventArgs e){ HtmlPage.Window.Invoke("SayHello"); }
为了使用 HtmlPage
资料,教程,编程,文集
类,必须包含 System.Windows.Browser 命名空间。
using System.Windows.Browser;
完成后,运行 Silverlight 应用程序查看结果。当点击 Silverlight 控件中的按钮, 可以看见一个从 Javascript 方法而来的弹出信息,如下图所示:
第二十七章 如何在 Silverlight 页面上弹出层?
在 xaml 页面上添加一个按钮,如下所示:
<Grid x:Name="LayoutRoot" Background="White" > </Grid>
在后置代码文件(page.xaml.cs)中添加如下代码
~ 33 ~
程序员之家
Popup p = new Popup(); private void showPopup_Click(object sender, RoutedEventArgs e) { // 创建一个 panel 控件包含其他控件 StackPanel panel1 = new StackPanel(); panel1.Background = new SolidColorBrush(Colors.Gray);
// 创建一个 button Button button1 = new Button(); button1.Content = "Close"; button1.Margin = new Thickness(5.0); button1.Click += new RoutedEventHandler(button1_Click);
// 创建文本 label TextBlock textblock1 = new TextBlock(); textblock1.Text = "The popup control"; textblock1.Margin = new Thickness(5.0);
// 添加文本 label 和 button 到 panel panel1.Children.Add(textblock1); panel1.Children.Add(button1);
// 设置 panel 为弹出层的子面板,当 panel 显示是弹出层显示 p.Child = panel1;
// 设置位置 p.VerticalOffset = 25; p.HorizontalOffset = 25;
// Show the popup. p.IsOpen = true;
~ 34 ~
程序员之家
}
void button1_Click(object sender, RoutedEventArgs e) { // 关闭弹出层 p.IsOpen = false; }
注意:需要添加 System.Windows.Controls.Primitives 命名控件的引用。 运行应用程序。可以看见页面上有一个按钮。当点击按钮时,一个具有文本标签和按钮的弹 出层会显示。当点击弹出层中按钮,
…… 此处隐藏:4207字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




