一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[1] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[2] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[3] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[4] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[2] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[3] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
[4] 一步一步學Silverlight :如何在Silverlight中與HTML DOM交互(下)
概述
Silverlight 2 Beta 1版本發布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, Ironpython,對JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學Silverlight 2系列》文章將從Silverlight 2基礎知識、數據與通信、自定義控件、動畫、圖形圖像等幾個方面帶您快速進入Silverlight 2開發。
Silverlight中內置了對于HTML、客戶端腳本等的支持,本文為如何在Silverlight 2中與HTML DOM交互第二部分。在第一部分中主要介紹了如何訪問和修改已有的HTML DOM,我們還可以完全創建一個新的DOM元素或者移除一個已有的DOM元素,除此之外,我們還可以為DOM元素添加事件處理。
創建DOM元素
首先我們來看如何創建一個新的DOM元素,最終的效果如下,當我們在文本框中輸入文字后,單擊創建,將在上面的區域中創建一個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區分
#parentdiv { background:#FCDFB3; border:solid 1px #FF9900; width:500px; height:100px; margin-bottom:20px; }
在Silverlight中進行界面布局,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="創 建" Canvas.Top="50" Canvas.Left="350" Click="createButton_Click"> </Button> </Canvas>
編寫創建按鈕的代碼,首先獲取到要往里面添加元素的父元素,即我們定義的ul:
HtmlElement parent = HtmlPage.Document.GetElementById("list");
創建一個新的元素li,并設置屬性
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); }
全站熱搜