天天看點

風雲的銀光志Silverlight4.0教程之輕松操作剪切闆

微軟于PDC2009上釋出Silverlight 4 Beta版,微軟在Silverlight 4版本中處理了約8000個的Silverlight終端使用者的請求,加入了一系列另開發人員興奮的新特性,最突出的主要展現在幾個方面:

開發工具增強:Visual Studio 2010具有可視化的設計工具,建立項目時可以選擇運作時版本是3.0還是4.0,BLEND4加入XAML和C#代碼全方位智能感覺功能、XAML的樣式應用更為易用等。

攝像頭與MIC硬體支援:可以用極少量的代碼實作啟用使用者本機的WebCam和Mic,并可進行本地錄制。

報表列印支援:報表列印問題在Silverlight4中得到的較好的解決。

更強大的基礎類控件(RichTextBox、DataGrid增強版):富文本控件RichTextBox和具有可粘貼、排序功能的DataGrid被加入。

WCF增強:終于支援TCP通訊,比較HTTP提升3-5倍,限于4502-4534端口。

相容性增強:對Google的Chrome浏覽器的支援。

MEF支援:MEF全稱為Managed Extensibility Framework,譯為“托管擴充架構”,支援建立大型複雜的應用程式。

運作速度提升:啟動速度和渲染速度較前個版本提升約2倍左右。

DRM增強:支援PlayReady,可以對視訊和音頻的播放進行的保護,補充了對H.264的DRM保護。

其它增強:本地檔案讀寫、滑鼠右鍵事件支援、剪粘闆支援。

      Silverlight 4.0開始加入了System.Windows.Clipboard(剪切闆操作)類,有了它我們就可以非常友善的操作剪切闆的資料了,這讓一些Silverlight應用程式中的文本可以COPY到Clipboard之中,同時你可以将從其它來源COPY到剪切闆中的内容粘貼到Silverlight應用程式之中,在此之前我們隻能通過JavaScript來通路剪切闆。

     接下來我們看一下Clipboard類為我們帶來了什麼,Clipboard類支援ContainsText、SetText和GetText三個方法,其中ContainsText可以傳回一個bool類型的值,讓我們知道剪切闆目前儲存的類型是否是Silverlight所支援的Unicode類型字元,SetText和GetText分别是用來設定和獲GetText剪切闆的文本資料。

下面我們看一個Silverlight操作剪切闆的執行個體:

XAML:

1     <Grid x:Name="LayoutRoot" Width="400" Height="200" Background="White"> 

2          <Grid.RowDefinitions> 

3              <RowDefinition/> 

4              <RowDefinition/> 

5          </Grid.RowDefinitions> 

6          <Grid.ColumnDefinitions> 

7              <ColumnDefinition /> 

8              <ColumnDefinition Width="100"/> 

9          </Grid.ColumnDefinitions> 

10         <TextBox x:Name="tbCopy" Width="260" Height="30"/> 

11         <TextBox x:Name="tbPaste" Width="260" Height="30" Grid.Row="1"/> 

12         <Button Content="複制" Grid.Column="1" 

13             Click="btnCopy_Click" 

14             x:Name="btnCopy" Width="80" Height="25"/> 

15         <Button Content="粘貼" Grid.Column="1" Grid.Row="1"  

16             Click="btnPaste_Click" 

17             x:Name="btnPaste" Width="80" Height="25"/> 

18     </Grid>

C#:

1          private void btnCopy_Click(object sender, RoutedEventArgs e) 

2          { 

3              if (tbCopy.Text != string.Empty) 

4              { 

5                  //設定剪切闆 

6                  Clipboard.SetText(tbCopy.Text); 

7              } 

8          } 

9  

10         private void btnPaste_Click(object sender, RoutedEventArgs e) 

11         { 

12             //判斷剪切闆是否包括文本字元 

13             if (Clipboard.ContainsText()) 

14             { 

15                 //擷取剪切闆 

16                 tbPaste.Text = Clipboard.GetText(); 

17             } 

18         }

運作結果如圖所示。

第一次運作SetText會讓使用者确認是否允許Silverlight操作剪切闆,如果使用者點選否會引發Clipboard access is not allowed異常。

下圖完成粘貼(Paste)操作。

   需要注意的是Silverlight與WPF不同的是,Silverlight僅僅支援Unicode字元類型的剪切闆操作,還不能像WPF那像可以對不同的類型的剪切闆操作,盡管如此,但是至少是Silverlight技術的一個增強,正是這種不斷的進步使更多的理想在Silverlight中變為可能。

希望對大家有用!

<a href="http://blog.csdn.net/dotfun/archive/2010/02/18/5310646.aspx"></a>

本文轉自dotfun 51CTO部落格,原文連結:http://blog.51cto.com/dotfun/285180

繼續閱讀