一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

一步一步學(xué)Silverlight :如何在Silverlight中與HTML DOM交互(下)

概述

Silverlight 2 Beta 1版本發(fā)布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, IronPython,對(duì)JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學(xué)Silverlight 2系列》文章將從Silverlight 2基礎(chǔ)知識(shí)、數(shù)據(jù)與通信、自定義控件、動(dòng)畫、圖形圖像等幾個(gè)方面帶您快速進(jìn)入Silverlight 2開發(fā)。

Silverlight中內(nèi)置了對(duì)于HTML、客戶端腳本等的支持,本文為如何在Silverlight 2中與HTML DOM交互第二部分。在第一部分中主要介紹了如何訪問和修改已有的HTML DOM,我們還可以完全創(chuàng)建一個(gè)新的DOM元素或者移除一個(gè)已有的DOM元素,除此之外,我們還可以為DOM元素添加事件處理。

創(chuàng)建DOM元素

首先我們來看如何創(chuàng)建一個(gè)新的DOM元素,最終的效果如下,當(dāng)我們?cè)谖谋究蛑休斎胛淖趾螅瑔螕魟?chuàng)建,將在上面的區(qū)域中創(chuàng)建一個(gè)li元素。

 TerryLee_Silverlight2_0089

先來定義一下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定義一個(gè)簡單的樣式,以示與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="請(qǐng)?jiān)谶@里輸入"                        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)建一個(gè)新的元素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);}

 

 

運(yùn)行后創(chuàng)建第一個(gè)元素

TerryLee_Silverlight2_0090

再次創(chuàng)建一個(gè)

TerryLee_Silverlight2_0091 

移除DOM元素

既然可以創(chuàng)建元素,對(duì)應(yīng)的也可以刪除元素,我們?cè)陧撁嫔戏派蠋讉€(gè)<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);}

運(yùn)行后界面上有三個(gè)<li>

TerryLee_Silverlight2_0092

刪除其中一個(gè)

TerryLee_Silverlight2_0093

為DOM注冊(cè)事件

除了添加和移除DOM元素外,我們還可以為DOM元素附加事件,在下面的例子中我們將通過Silverlight動(dòng)態(tài)創(chuàng)建一個(gè)DOM元素<a>,并未它注冊(cè)單擊事件,單擊時(shí)修改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>

并且定義兩個(gè)樣式,其中newstyle我們將在Silverlight中為新添加的a元素使用。

#parent{    background:#FCDFB3;    border:solid 1px #FF9900;    width:500px;    height:100px;    margin-bottom:20px;    }.newstyle{    background:#0099FF;    border:solid 1px #0000FF;}

做一個(gè)簡單的界面,放置一個(gè)按鈕和矩形:

<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)建一個(gè)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元素單單擊時(shí)我們改變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;}

運(yùn)行一下看看效果如何,起始界面

TerryLee_Silverlight2_0094

添加新元素a

TerryLee_Silverlight2_0095

單擊改變矩形的背景顏色

TerryLee_Silverlight2_0096 

HtmlElement也提供了DetachEvent方法,可以取消注冊(cè)事件。

結(jié)束語

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


NET技術(shù)一步一步學(xué)Silverlight :如何在Silverlight中與HTML DOM交互(下),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩美女色高清在线看 | 精品欧美一区二区三区四区 | 亚洲国产激情 | 亚洲一区二区三区四区视频 | 国内在线观看精品免费视频 | 精品日韩在线 | 爱综合网 | 久久精品国产四虎 | 色老板成人永久免费视频 | 91精品国产综合久久青草 | 激情图片 激情小说 | 免费观看国产一区二区三区 | 中文字幕精品在线 | 99999久久久久久亚洲 | 伊人免费在线 | 国产v精品成人免费视频71sao | 色呦呦在线播放 | 女人天堂网| 国产特黄一级毛片特黄 | 精品伊人久久大线蕉地址 | 久久久久国产一级毛片高清片 | 婷婷五色 | 国产精品福利无圣光一区二区 | 九色国产在视频线精品视频 | 91精彩视频在线观看 | 四虎4hu永久免费 | 国产精品青青青高清在线密亚 | 国产成人一区在线播放 | 国产激情视频趣趣在线观看的 | 欧美成人免费一区在线播放 | 亚洲女人天堂网 | 综合 欧美 国产 视频二区 | 国产区高清| 在线午夜视频 | 中国毛片免费观看 | 亚洲日本一区二区三区在线 | 久久久午夜精品 | 国产成人精品一区二区不卡 | 国产一区二区视频免费 | 欧美成人性色区 | 免费播放欧美一级特黄 |