??????? 本節將講述三個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控件的互相操作...的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。