Silverlight实用窍门系列:51.Silverlight页面控件的放大缩小、Silverlight和Html控件的互相操作...
本节将讲述三个Silverlight中应用的小技巧:Silverlight页面的放大缩小、Silverlight操作Html、Html操作Silverlight控件。
一、Silverlight页面的放大缩小
首先对于Silverlight页面的放大缩小我们可以使用ScaleTransform对Canvas控件进行设置。这样所有在该Canvas控件内的所有子控件都被放大缩小。
下面我们看Xaml源码如下:
- <Canvas MouseWheel="LayoutRoot_MouseWheel" Width="500" Height="450">
- <Canvas.RenderTransform>
- <ScaleTransform x:Name="canvasTrans"></ScaleTransform>
- </Canvas.RenderTransform>
- <Image Name="showimg" Source="/SLBigOrSmall;component/1618591.jpg"></Image>
- <Button Width="154" Content="Silverlight操作Html" HorizontalAlignment="Right"
- Height="40" Canvas.Left="6" Canvas.Top="400" Click="Button_Click" />
- </Canvas>
然后Xaml.cs代码如下:
- #region 放大缩小元素
- private void LayoutRoot_MouseWheel(object sender, MouseWheelEventArgs e)
- {
- // e.Delta滚动一个齿轮为120,向前为正,向后为负所以120/1200,让增量变到正负0.1
- double delta = e.Delta / 1200.0;
- canvasTrans.ScaleX += delta;
- canvasTrans.ScaleY += delta;
- }
- #endregion
二、Silverlight操作Html控件
在这里我们使用Silverlight中的按钮,通过HtmlElement类操作Html中的ID为Text1的input控件的Value属性值。
Html代码如下:
- <input id="Text1" type="text" />
Xaml.cs代码如下:
- #region Silverlight操作Html元素
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- HtmlElement htmlElem = HtmlPage.Document.GetElementById("Text1");
- htmlElem.SetAttribute("value", "Silverlight操作成功Html");
- }
- #endregion
三、Html操作Silverlight控件
在这里我们通过GetElementById方法找到Html控件然后为它增加一个onchange事件,在这个事件中获取到控件的值并且设置到Silverlight控件中去。
Html代码如下:
- <div style=" text-align:center;">
- 请选择:<select id="selectColor">
- <option value="White">白色</option>
- <option value="Gray">灰色</option>
- <option value="Black">黑色</option>
- </select>
- </div>
Silverlight的xaml.cs代码如下:
- #region Html操作Silverlight元素
- private void HtmlLinkSL()
- {
- //获取到页面上的selectColor的Html控件
- HtmlElement htmlSelectColor = HtmlPage.Document.GetElementById("selectColor");
- //为这个Html控件增加onchange选择变化事件
- htmlSelectColor.AttachEvent("onchange", new EventHandler<HtmlEventArgs>(htmlSelectColor_onChange));
- }
- public void htmlSelectColor_onChange(object sender, HtmlEventArgs e)
- {
- HtmlElement htmlSelect=sender as HtmlElement;
- //获取到html控件选择的值,根据这个值为Html
- switch(htmlSelect.GetAttribute("value"))
- {
- case "White":
- ellipse1.Fill = new SolidColorBrush(Colors.White);
- break;
- case "Gray":
- ellipse1.Fill = new SolidColorBrush(Colors.Gray);
- break;
- case "Black":
- ellipse1.Fill = new SolidColorBrush(Colors.Black);
- break;
- default:
- break;
- }
- }
- #endregion
最后我们来看运行的效果如下图所示,另外如需源码请点击 SLBigOrSmall.rar 下载。
转载于:https://blog.51cto.com/chengxingliang/826758
Silverlight实用窍门系列:51.Silverlight页面控件的放大缩小、Silverlight和Html控件的互相操作...相关推荐
- Silverlight实用窍门系列:59.多个中心点联动多线的可拖动控件扩展为拓扑图
在本系列的第17篇文章中"Silverlight实用窍门系列:17.中心点联动多线的可拖动控件(绘制工程图.拓扑图基础) ",制作了基本的中心联动图标.有园友对此图的扩展不是很清晰 ...
- Silverlight实用窍门系列:71.Silverlight的Style
此文章实例基于Silverlight实用窍门系列:68.Silverlight的资源字典ResourceDictionary,如有数据源疑问请参考该文章. 在Silverlight中的Style相当于 ...
- Silverlight实用窍门系列:66.Silverlight的数据模板DataTemplate(二)获取数据模板控件...
在Silverlight中我们使用了数据模板,在很多时候也需要获取到数据模板上的控件,并且进行改变.本文使用的实例数据源和上节相同,如需了解请下载源码查看. 当然在这里我们可以分为获取数据模板原始控件 ...
- Silverlight实用窍门系列:29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态【附带源码实例】...
雷达扫描图中当雷达指针转动扫描到某一个点上的时候,判断这个点的CPU值是否已经超过60的警戒位置如果超过将此点设置为红色. 在Silverlight中我们的雷达指针是一直在做圆运动的,我们要随时检测雷 ...
- Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...
在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来.也可以通过 htt ...
- Silverlight实用窍门系列:42.读取拖动到控件上的外部txt和jpg文件,多外部文件的拖动【附带实例源码】...
本实例将读取拖动到Silverlight的ListBox控件中的txt文件或者Jpg文件.在本实例中将讲如果通过UIelementA.Drop事件获取到拖动到UIelementA上的文件的相关名称以及 ...
- Silverlight实用窍门系列:14.Visifire图表控件的使用一(图表的创建和基础使用)【附带源码实例】...
在实际项目开展中,往往会牵扯到需要绘制图表的情况.而Visifire是一个比较美观大方的第三方图表控件,本文会讲述如何初步使用Visifire控件. 首先我们需要从Visifire的官方网站下载:ht ...
- Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器
在Silverlight应用程序和客户进行交互工作的时候可以不用写后台代码而通过Xaml代码来实现,在本文我们将学习了解Trigger触发器. Trigger触发器:引发动作的因素,比如鼠标点击.键盘 ...
- Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】...
Silverlight中的事件分为普通事件和冒泡路由事件,它并没有包括WPF中的隧道路由事件,在本章中将详细讲解冒泡路由事件和如何注册一个冒泡路由事件. 一.细解冒泡路由事件 冒泡路由事件可以比喻为: ...
最新文章
- 测试脚本的实用性(续)谈对编写脚本的几点规范
- C语言运算符优先级和口诀(转)
- [基础题]8.(*)按如下要求编写Java程序:(1)定义一个交通工具收费接口Charge
- 变量定义和声明的区别~~~概念上千万不要栽跟头!!!
- 图片还原去遮挡_斗罗:这届coser太强,动画刚播出两天,战损三哥就被还原了...
- 姓名抽签器c语言,在线抽签器
- Android 6.0权限分组
- day05【后台】菜单维护
- Matlab数据拟合方法介绍
- 电脑翻译,百度翻译电脑桌面版
- Wpf MessageBox的用法
- 【Halcon】图像预处理
- java docx 文档不可编辑、复制
- SphereEx 创始人张亮荣获『2021 年度海纳奖——分布式数据库十佳实践人物』
- Linux内核抢占机制(preempt)
- 计算机专业兴趣小组 名字,计算机人兴趣小组口号
- 王者荣耀又开始“神仙”操作,全新的神仙英雄在体验服上线!
- Windows 11 移动文件夹错误 0x800700E1 无法成功完成操作
- Excel函数之— SUMPRODUCT用法(二),太强大了
- 东软慧聚助力汽车“芯”节能减排
热门文章
- 16/100. Symmetric Tree
- R语言与概率统计(四) 判别分析(分类)
- 人工智能中的局部搜索算法
- 【helpdesk】启明星helpdesk7.0版本里,实现邮件提交功能介绍和原理
- android 中 Proguard 和JNI 相关
- 前端面试题 微信小程序
- cad立面索引符号 规范_一套标准规范施工图包含哪些?13年深化设计师3分钟带你正确认知...
- typescript数组类型
- OpenCV的AdaptiveThreshold函数
- 组装自己的tesla超级计算机