成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Silverlight開發之偷拿別人HTML控件

開發 后端 前端
需求:大家都現有MS提供的HTML控件只能在OOB模式下使用,而第三方的控件如要在非OOB下使用則需設置windowsless等于true,我們知道windowsless等于true對性能是有影響的,還有個特大的bug就是不能輸入中文。

現在我們需要的是是在非OOB下的HTML控件,并且支持中文輸入無需設置windowsless等于true。

好吧下面我們開始吧:去年的在深藍色右手群里有位叫“超人”的哥們說DIV的方式,Silverlihgt在html中作為插件顯示。我們可以在html中建立一個DIV 覆蓋在Silverlight的上方。這樣我們就能輸入中文了。今天我們這里也是這樣的方式實現的。

以下代碼是去年從某地反編譯過來,然后稍作修改的。具體哪里也忘了。下面我們簡單分析下代碼:

我們先定義Uri屬性,指定顯示某個Uri的html

  1. /// <summary> 
  2. /// 設置Uri的依賴屬性,并且定義Uri改變時事件SourceUriChanged  
  3. /// </summary> 
  4. public static readonly DependencyProperty SourceUriProperty =  
  5. DependencyProperty.Register("SourceUri", typeof(Uri), typeof(HTMLControl),  
  6. new PropertyMetadata(null, new PropertyChangedCallback(HTMLControl.SourceUriChanged)));  
  7.     
  8. /// <summary> 
  9. /// 指定顯示的Uri  
  10. /// </summary> 
  11.  public Uri SourceUri  
  12.  {  
  13.     get  
  14.    {  
  15.         return (Uri)base.GetValue(SourceUriProperty);  
  16.       }  
  17.    set  
  18.     {  
  19.         base.SetValue(SourceUriProperty, value);  
  20.     }  
  21.  } 

下面是當Uri改變時候觸發的事件,大致原理為:

1.獲取Sl所屬頁面在頁面中增加一個Div元素

2.調整Div元素所處位置以及長寬高。讓它剛好處于Sl控件位置

3.Refresh方法主要調整位置以及長寬高

  1. private static void SourceUriChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)  
  2.    {  
  3.              ((HTMLControl)sender).ReloadUri();  
  4.         }  
  5.          private void ReloadUri()  
  6.          {  
  7.             if (!HtmlPage.IsEnabled)  
  8.             {  
  9.                  return;  
  10.              }  
  11.              if (!this.isLoad)  
  12.             {  
  13.                  return;  
  14.              }  
  15.            if (this.div.Children.Count > 0)  
  16.              {  
  17.                  while (div.Children.Count>0)  
  18.                 {  
  19.                      this.div.RemoveChild((HtmlElement)this.div.Children[0]);  
  20.                 }  
  21.              }  
  22.    
  23.             if (this.SourceUri == null)  
  24.             {  
  25.                  //直接設置SourceHtml 未設置Uri  
  26.                   this.div.SetStyleAttribute("overflow", "auto");  
  27.                  this.SetDivHtml(this.div, this.SourceHtml);  
  28.                  //這里刷新Html,并且創建Div  
  29.                  this.Refresh();  
  30.              }  
  31.              else  
  32.              {  
  33.                  //通過URL設置  
  34.                  this.div.SetStyleAttribute("overflow", "hidden");  
  35.                 this.div.AppendChild(this.IFrame);  
  36.                  this.IFrame.SetAttribute("src", this.SourceUri.ToString());  
  37.                  //這里刷新Html  
  38.                   this.Refresh();  
  39.                      
  40.             }  
  41.          } 

上面控件只能在非OOB模式下使用,因為在OOB模式下無法創建Div,HtmlPage等對象訪問也會報錯(題外話:真不明白為啥默認建的SL項目App.xaml.cs中會用到HtmlPage對象)。所以要在OOB運行的時候朋友們可以使用MS的WebBrowser控件。

原文鏈接:http://www.cnblogs.com/ForrestZhang/archive/2011/03/08/SilverlightHtml.html

【編輯推薦】

  1. 你可能不知道的15個Silverlight訣竅
  2. Silverlight 之輕
  3. Silverlight 之重
  4. 在Silverlight應用程序中調試WCF服務
責任編輯:陳貽新 來源: Mr.Wrong博客
相關推薦

2012-02-02 16:37:51

Silverlight常用控件

2009-12-30 13:30:16

Silverlight

2011-01-26 09:50:18

Silverlight.NetJavaScript

2011-01-27 08:49:47

SilverlightWeb.NET

2009-12-30 13:51:43

Silverlight

2010-01-04 14:49:30

Silverlight

2011-08-24 09:29:00

Silverlight

2009-08-03 15:43:22

asp.net控件

2009-12-30 16:43:47

Silverlight

2009-08-14 10:14:07

Silverlight

2009-12-30 17:29:53

Silverlight

2009-12-30 11:16:36

Silverlight

2009-12-30 13:59:58

Silverlight

2009-12-31 16:44:53

Silverlight

2010-08-06 15:44:28

Windows PhoWindows PhoSilverlight

2009-12-30 14:10:27

Silverlight

2012-02-02 16:32:23

Silverlight控件模型分類

2009-12-31 11:15:57

Silverlight

2009-08-07 09:20:26

DataPager數據

2009-12-31 15:58:11

Silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产美女在线精品免费 | 国产原创在线观看 | 激情亚洲 | 天天操天天干天天曰 | 午夜影院在线观看视频 | 欧美精品v| 国产精品久久a | 黄色网址av | 欧美在线天堂 | 久久香蕉网 | 亚洲成人网在线 | 91伊人 | 黄色免费看 | 九色 在线 | 羞羞视频在线观看 | 日韩欧美在线观看 | 国产一区二区 | 免费一区二区三区在线视频 | 视频一区二区三区在线观看 | 欧美第一页 | 午夜视频在线免费观看 | 午夜婷婷激情 | 欧美夜夜| 九九精品网 | 成人国产在线视频 | 亚洲精品一 | 亚洲欧美日韩久久久 | 翔田千里一区二区 | 精品国产乱码久久久久久图片 | 亚洲国产精品久久久 | 久久精品免费一区二区三 | 性一区 | 中文在线一区二区 | 免费视频99| 欧美日韩手机在线观看 | 激情福利视频 | www.47久久青青 | 国产高清久久久 | 日韩av在线一区 | 国产精品久久国产精品 | 麻豆亚洲 |