日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)

發(fā)布時間:2023/12/20 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
版權(quán)聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、作者信息和本聲明。否則將追究法律責(zé)任。http://terrylee.blog.51cto.com/342737/67260

概述

Silverlight 2 Beta 1版本發(fā)布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, Ironpython,對JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學(xué)Silverlight 2系列》文章將從Silverlight 2基礎(chǔ)知識、數(shù)據(jù)與通信、自定義控件、動畫、圖形圖像等幾個方面帶您快速進(jìn)入Silverlight 2開發(fā)。 Silverlight中內(nèi)置了對于HTML、客戶端腳本等的支持,本文為如何在Silverlight 2中與HTML DOM交互第二部分。在第一部分中主要介紹了如何訪問和修改已有的HTML DOM,我們還可以完全創(chuàng)建一個新的DOM元素或者移除一個已有的DOM元素,除此之外,我們還可以為DOM元素添加事件處理。

創(chuàng)建DOM元素

首先我們來看如何創(chuàng)建一個新的DOM元素,最終的效果如下,當(dāng)我們在文本框中輸入文字后,單擊創(chuàng)建,將在上面的區(qū)域中創(chuàng)建一個li元素。 先來定義一下HTML頁面,甚至Silverlight插件的高度。 <div id="parentdiv"><ul id="list"></ul></div><div style="height:200px;"><asp:Silverlight ID="Xaml1" runat="server"Source="~/ClientBin/TerryLee.SilverlightAccessDom2.xap"Version="2.0" Width="100%" Height="200px" /></div> 并且為上面的div定義一個簡單的樣式,以示與Silverlight區(qū)分 #parentdiv{background:#FCDFB3;border:solid 1px #FF9900;width:500px;height:100px;margin-bottom:20px;} 在Silverlight中進(jìn)行界面布局,XAML如下: <Canvas Background="#CDFCAE"><TextBlock Text="Silverlight Accessing the HTML DOM" Foreground="Red"Canvas.Top="10" Canvas.Left="30" FontSize="18"></TextBlock><WatermarkedTextBox x:Name="input" Watermark="請在這里輸入"Height="40" Width="300"Canvas.Left="30" Canvas.Top="50"></WatermarkedTextBox><Button x:Name="createButton" Background="Red"Height="40" Width="100" Content="創(chuàng) 建"Canvas.Top="50" Canvas.Left="350"Click="createButton_Click"></Button></Canvas> 編寫創(chuàng)建按鈕的代碼,首先獲取到要往里面添加元素的父元素,即我們定義的ul: HtmlElement parent = HtmlPage.Document.GetElementById("list"); 創(chuàng)建一個新的元素li,并設(shè)置屬性 HtmlElement child = HtmlPage.Document.CreateElement("li");child.SetAttribute("innerText", this.input.Text); 添加新元素到parent中 parent.AppendChild(child); 完整的代碼如下: private void createButton_Click(object sender, RoutedEventArgs e){HtmlElement parent = HtmlPage.Document.GetElementById("list");HtmlElement child = HtmlPage.Document.CreateElement("li");child.SetAttribute("innerText", this.input.Text);parent.AppendChild(child);} 運行后創(chuàng)建第一個元素 再次創(chuàng)建一個

移除DOM元素

既然可以創(chuàng)建元素,對應(yīng)的也可以刪除元素,我們在頁面上放上幾個<li>元素,然后輸入id進(jìn)行刪除。代碼如下: private void deleteButton_Click(object sender, RoutedEventArgs e){HtmlElement parent = HtmlPage.Document.GetElementById("list");HtmlElement child = HtmlPage.Document.GetElementById(this.input.Text);parent.RemoveChild(child);} 運行后界面上有三個<li> 刪除其中一個

為DOM注冊事件

除了添加和移除DOM元素外,我們還可以為DOM元素附加事件,在下面的例子中我們將通過Silverlight動態(tài)創(chuàng)建一個DOM元素<a>,并未它注冊單擊事件,單擊時修改Silverlight中的矩形背景色。先準(zhǔn)備相關(guān)的HTML。 <div id="parent"></div><div style="height:200px;"><asp:Silverlight ID="Xaml1" runat="server"Source="~/ClientBin/TerryLee.SilverlightAccessingDom3.xap"Version="2.0" Width="100%" Height="200px" /></div> 并且定義兩個樣式,其中newstyle我們將在Silverlight中為新添加的a元素使用。 #parent{background:#FCDFB3;border:solid 1px #FF9900;width:500px;height:100px;margin-bottom:20px;}.newstyle{background:#0099FF;border:solid 1px #0000FF;} 做一個簡單的界面,放置一個按鈕和矩形: <Canvas Background="#CDFCAE"><TextBlock Text="Silverlight Accessing the HTML DOM" Foreground="Red"Canvas.Top="10" Canvas.Left="30" FontSize="18"></TextBlock><Rectangle x:Name="result" Height="40" Width="300" Fill="Red"Canvas.Left="30" Canvas.Top="50"RadiusX="5" RadiusY="5"></Rectangle><Button x:Name="addButton" Background="Red"Height="40" Width="100" Content="添 加"Canvas.Top="50" Canvas.Left="350"Click="addButton_Click"></Button></Canvas> 添加DOM元素,創(chuàng)建一個a元素,并為它設(shè)置屬性,其中用CssClass來定義它的樣式: HtmlElement parent = HtmlPage.Document.GetElementById("parent");HtmlElement button = HtmlPage.Document.CreateElement("a");button.SetAttribute("innerText", "改變Silverlight中的顏色");button.SetAttribute("href","#");button.CssClass = "newstyle";parent.AppendChild(button); 為a元素附加onclick事件,HtmlElement提供了AttachEvent方法用來附加事件,使用泛型的EventHandler,在a元素單單擊時我們改變Silverlight中的矩形填充色和邊框。 button.AttachEvent("onclick", new EventHandler<HtmlEventArgs>(button_Click)); void button_Click(object sender, HtmlEventArgs e){result.Stroke = new SolidColorBrush(Colors.Black);result.Fill = new SolidColorBrush(Colors.Green);result.StrokeThickness = 2;} 完整的代碼如下: private void addButton_Click(object sender, RoutedEventArgs e){HtmlElement parent = HtmlPage.Document.GetElementById("parent");HtmlElement button = HtmlPage.Document.CreateElement("a");button.SetAttribute("innerText", "改變Silverlight中的顏色");button.SetAttribute("href","#");button.CssClass = "newstyle";parent.AppendChild(button);button.AttachEvent("onclick", new EventHandler<HtmlEventArgs>(button_Click));}void button_Click(object sender, HtmlEventArgs e){result.Stroke = new SolidColorBrush(Colors.Black);result.Fill = new SolidColorBrush(Colors.Green);result.StrokeThickness = 2;} 運行一下看看效果如何,起始界面 添加新元素a 單擊改變矩形的背景顏色 HtmlElement也提供了DetachEvent方法,可以取消注冊事件。

結(jié)束語

本文簡單介紹了如何在Silverlight中添加和移除DOM元素,以及為DOM元素添加、取消事件處理程序。

本文出自 “TerryLee技術(shù)專欄” 博客,請務(wù)必保留此出處http://terrylee.blog.51cto.com/342737/67260

本文出自 51CTO.COM技術(shù)博客

轉(zhuǎn)載于:https://www.cnblogs.com/hdjjun/archive/2008/12/24/1361471.html

總結(jié)

以上是生活随笔為你收集整理的一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。