<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一步一步學Silverlight 2系列(20):如何在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元素。

       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定義一個簡單的樣式,以示與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);
      }

      運行后創建第一個元素

      TerryLee_Silverlight2_0090

      再次創建一個

      TerryLee_Silverlight2_0091 

      移除DOM元素

      既然可以創建元素,對應的也可以刪除元素,我們在頁面上放上幾個<li>元素,然后輸入id進行刪除。代碼如下:

      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>

      TerryLee_Silverlight2_0092

      刪除其中一個

      TerryLee_Silverlight2_0093

      為DOM注冊事件

      除了添加和移除DOM元素外,我們還可以為DOM元素附加事件,在下面的例子中我們將通過Silverlight動態創建一個DOM元素<a>,并未它注冊單擊事件,單擊時修改Silverlight中的矩形背景色。先準備相關的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元素,創建一個a元素,并為它設置屬性,其中用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;
      }

      運行一下看看效果如何,起始界面

      TerryLee_Silverlight2_0094

      添加新元素a

      TerryLee_Silverlight2_0095

      單擊改變矩形的背景顏色

      TerryLee_Silverlight2_0096 

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

      結束語

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

      下一篇:一步一步學Silverlight 2系列(21):如何在Silverlight中調用JavaScript

      posted @ 2008-03-11 19:00  TerryLee  閱讀(16711)  評論(33)    收藏  舉報
      主站蜘蛛池模板: 18成禁人视频免费| 友谊县| 亚洲精品一区二区三区免| 海阳市| 极品粉嫩小泬无遮挡20p| 91精品91久久久久久| 国产性色的免费视频网站| 国产av无码国产av毛片| 国产精品亚洲А∨天堂免下载| 国产精品99久久久久久www| 又粗又大又硬又长又爽| 伊人中文在线最新版天堂| 亚洲欧美自偷自拍视频图片| 深夜免费av在线观看| 日本亚洲一区二区精品久久| 无码熟妇人妻AV在线影片最多| 亚洲一区二区av在线| 日韩毛片在线视频x| 男女性高爱潮免费网站| 免费观看全黄做爰大片国产| 久久夜色国产噜噜亚洲av| 久久精品免视看国产成人| 欧洲免费一区二区三区视频| 国产高清国产精品国产专区| 丁香花成人电影| 久久www免费人成看片中文| 日日躁夜夜躁狠狠躁超碰97| 久久精品免视看国产成人| 男人的天堂va在线无码| 麻豆成人av不卡一二三区| 国产超高清麻豆精品传媒麻豆精品| 欧美人与动牲猛交A欧美精品| 国产系列丝袜熟女精品视频| 日韩精品无码一区二区视频| 成人看的污污超级黄网站免费| 天天做日日做天天添天天欢公交车| 不卡一区二区国产在线| 日韩中文字幕一区二区不卡| 人摸人人人澡人人超碰97| 果冻传媒一区二区天美传媒| 潍坊市|