本节将讲述三个Silverlight中应用的小技巧:Silverlight页面的放大缩小、Silverlight操作Html、Html操作Silverlight控件。

一、Silverlight页面的放大缩小

首先对于Silverlight页面的放大缩小我们可以使用ScaleTransform对Canvas控件进行设置。这样所有在该Canvas控件内的所有子控件都被放大缩小。

下面我们看Xaml源码如下:

  1. <Canvas  MouseWheel="LayoutRoot_MouseWheel" Width="500" Height="450">
  2. <Canvas.RenderTransform>
  3. <ScaleTransform x:Name="canvasTrans"></ScaleTransform>
  4. </Canvas.RenderTransform>
  5. <Image Name="showimg" Source="/SLBigOrSmall;component/1618591.jpg"></Image>
  6. <Button Width="154"  Content="Silverlight操作Html" HorizontalAlignment="Right"
  7. Height="40" Canvas.Left="6" Canvas.Top="400" Click="Button_Click" />
  8. </Canvas>

然后Xaml.cs代码如下:

  1. #region 放大缩小元素
  2. private void LayoutRoot_MouseWheel(object sender, MouseWheelEventArgs e)
  3. {
  4. // e.Delta滚动一个齿轮为120,向前为正,向后为负所以120/1200,让增量变到正负0.1
  5. double delta = e.Delta / 1200.0;
  6. canvasTrans.ScaleX += delta;
  7. canvasTrans.ScaleY += delta;
  8. }
  9. #endregion

二、Silverlight操作Html控件

在这里我们使用Silverlight中的按钮,通过HtmlElement类操作Html中的ID为Text1的input控件的Value属性值。

Html代码如下:

  1. <input id="Text1" type="text" />

Xaml.cs代码如下:

  1. #region Silverlight操作Html元素
  2. private void Button_Click(object sender, RoutedEventArgs e)
  3. {
  4. HtmlElement htmlElem = HtmlPage.Document.GetElementById("Text1");
  5. htmlElem.SetAttribute("value", "Silverlight操作成功Html");
  6. }
  7. #endregion

三、Html操作Silverlight控件

在这里我们通过GetElementById方法找到Html控件然后为它增加一个onchange事件,在这个事件中获取到控件的值并且设置到Silverlight控件中去。

Html代码如下:

  1. <div style=" text-align:center;">
  2. 请选择:<select id="selectColor">
  3. <option value="White">白色</option>
  4. <option value="Gray">灰色</option>
  5. <option value="Black">黑色</option>
  6. </select>
  7. </div>

Silverlight的xaml.cs代码如下:

  1. #region Html操作Silverlight元素
  2. private void HtmlLinkSL()
  3. {
  4. //获取到页面上的selectColor的Html控件
  5. HtmlElement htmlSelectColor = HtmlPage.Document.GetElementById("selectColor");
  6. //为这个Html控件增加onchange选择变化事件
  7. htmlSelectColor.AttachEvent("onchange", new EventHandler<HtmlEventArgs>(htmlSelectColor_onChange));
  8. }
  9. public void htmlSelectColor_onChange(object sender, HtmlEventArgs e)
  10. {
  11. HtmlElement htmlSelect=sender as HtmlElement;
  12. //获取到html控件选择的值,根据这个值为Html
  13. switch(htmlSelect.GetAttribute("value"))
  14. {
  15. case "White":
  16. ellipse1.Fill = new SolidColorBrush(Colors.White);
  17. break;
  18. case "Gray":
  19. ellipse1.Fill = new SolidColorBrush(Colors.Gray);
  20. break;
  21. case "Black":
  22. ellipse1.Fill = new SolidColorBrush(Colors.Black);
  23. break;
  24. default:
  25. break;
  26. }
  27. }
  28. #endregion

最后我们来看运行的效果如下图所示,另外如需源码请点击 SLBigOrSmall.rar 下载。

转载于:https://blog.51cto.com/chengxingliang/826758

Silverlight实用窍门系列:51.Silverlight页面控件的放大缩小、Silverlight和Html控件的互相操作...相关推荐

  1. Silverlight实用窍门系列:59.多个中心点联动多线的可拖动控件扩展为拓扑图

    在本系列的第17篇文章中"Silverlight实用窍门系列:17.中心点联动多线的可拖动控件(绘制工程图.拓扑图基础) ",制作了基本的中心联动图标.有园友对此图的扩展不是很清晰 ...

  2. Silverlight实用窍门系列:71.Silverlight的Style

    此文章实例基于Silverlight实用窍门系列:68.Silverlight的资源字典ResourceDictionary,如有数据源疑问请参考该文章. 在Silverlight中的Style相当于 ...

  3. Silverlight实用窍门系列:66.Silverlight的数据模板DataTemplate(二)获取数据模板控件...

    在Silverlight中我们使用了数据模板,在很多时候也需要获取到数据模板上的控件,并且进行改变.本文使用的实例数据源和上节相同,如需了解请下载源码查看. 当然在这里我们可以分为获取数据模板原始控件 ...

  4. Silverlight实用窍门系列:29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态【附带源码实例】...

    雷达扫描图中当雷达指针转动扫描到某一个点上的时候,判断这个点的CPU值是否已经超过60的警戒位置如果超过将此点设置为红色. 在Silverlight中我们的雷达指针是一直在做圆运动的,我们要随时检测雷 ...

  5. Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...

    在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来.也可以通过 htt ...

  6. Silverlight实用窍门系列:42.读取拖动到控件上的外部txt和jpg文件,多外部文件的拖动【附带实例源码】...

    本实例将读取拖动到Silverlight的ListBox控件中的txt文件或者Jpg文件.在本实例中将讲如果通过UIelementA.Drop事件获取到拖动到UIelementA上的文件的相关名称以及 ...

  7. Silverlight实用窍门系列:14.Visifire图表控件的使用一(图表的创建和基础使用)【附带源码实例】...

    在实际项目开展中,往往会牵扯到需要绘制图表的情况.而Visifire是一个比较美观大方的第三方图表控件,本文会讲述如何初步使用Visifire控件. 首先我们需要从Visifire的官方网站下载:ht ...

  8. Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器

    在Silverlight应用程序和客户进行交互工作的时候可以不用写后台代码而通过Xaml代码来实现,在本文我们将学习了解Trigger触发器. Trigger触发器:引发动作的因素,比如鼠标点击.键盘 ...

  9. Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】...

    Silverlight中的事件分为普通事件和冒泡路由事件,它并没有包括WPF中的隧道路由事件,在本章中将详细讲解冒泡路由事件和如何注册一个冒泡路由事件. 一.细解冒泡路由事件 冒泡路由事件可以比喻为: ...

最新文章

  1. 测试脚本的实用性(续)谈对编写脚本的几点规范
  2. C语言运算符优先级和口诀(转)
  3. [基础题]8.(*)按如下要求编写Java程序:(1)定义一个交通工具收费接口Charge
  4. 变量定义和声明的区别~~~概念上千万不要栽跟头!!!
  5. 图片还原去遮挡_斗罗:这届coser太强,动画刚播出两天,战损三哥就被还原了...
  6. 姓名抽签器c语言,在线抽签器
  7. Android 6.0权限分组
  8. day05【后台】菜单维护
  9. Matlab数据拟合方法介绍
  10. 电脑翻译,百度翻译电脑桌面版
  11. Wpf MessageBox的用法
  12. 【Halcon】图像预处理
  13. java docx 文档不可编辑、复制
  14. SphereEx 创始人张亮荣获『2021 年度海纳奖——分布式数据库十佳实践人物』
  15. Linux内核抢占机制(preempt)
  16. 计算机专业兴趣小组 名字,计算机人兴趣小组口号
  17. 王者荣耀又开始“神仙”操作,全新的神仙英雄在体验服上线!
  18. Windows 11 移动文件夹错误 0x800700E1 无法成功完成操作
  19. Excel函数之— SUMPRODUCT用法(二),太强大了
  20. 东软慧聚助力汽车“芯”节能减排

热门文章

  1. 16/100. Symmetric Tree
  2. R语言与概率统计(四) 判别分析(分类)
  3. 人工智能中的局部搜索算法
  4. 【helpdesk】启明星helpdesk7.0版本里,实现邮件提交功能介绍和原理
  5. android 中 Proguard 和JNI 相关
  6. 前端面试题 微信小程序
  7. cad立面索引符号 规范_一套标准规范施工图包含哪些?13年深化设计师3分钟带你正确认知...
  8. typescript数组类型
  9. OpenCV的AdaptiveThreshold函数
  10. 组装自己的tesla超级计算机