教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

Silverlight初学者的入门课程(5)

来源:网络收集 时间:2026-05-23
导读: ~ 29 ~ 程序员之家 服务检索大量数据,没有上面 2 方面的缺点。 使用 WCF 从服务的获取 Session 数据到 Silverlight 控件,你需要做的是创建一个简 单的 WCF 访问。 这个服务应该有一个方法获取 Session 键值作为输

~ 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字,全部文档内容请下载后查看。喜欢就下载吧 ……

Silverlight初学者的入门课程(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/269917.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)