windows phone (19) 深入瞭解TextBlock

 TextBlock

一般用於顯示文本的元素,我們最爲經常用到的是該類的Text屬性,其實顯示文本有兩種呈現方式,一個是設置內部文本Text,另一種就是在Inlines 集合中創建一個新的 Run 對象LineBreak對象,我們稱之爲內聯文本;【作者:神舟龍

Run 標籤內容成爲 Text 屬性的值,該類具有TextBlock類所具有的部分屬性,比如FontFamily,FontSize,FontStretch,Foregroud等等;

LineBreak  新起一行,是換行標籤

  1. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
  2.             <TextBlock x:Name="tbShow" Text="文字示例" Foreground="White"    VerticalAlignment="Center" HorizontalAlignment="Center"> 
  3.                 <TextBlock.Inlines> 
  4.                     <Run Foreground="Blue" Text="ddd"  ></Run> 
  5.                 </TextBlock.Inlines> 
  6.             </TextBlock> 
  7.         </Grid> 

 可以看到我們在Run標籤和TextBlock標籤都設置的前景色和顯示的文字,可是效果如何那,效果:

 

 所以我們確定如果TextBlock標籤和TextBlock標籤內定義Run標籤的屬性相重複時,兩者的屬性互不相干,但是Run設置的顯示文本在TextBlock屬性Text之後,要把程序運行起來,設計器直接看會是這樣的錯誤結果,

 

 

 再看下面的例子,我們對Run標籤的一些屬性進行了一些羅列:

 

  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
  3.            <TextBlock x:Name="tbShow" Text="文字示例" Foreground="White"    VerticalAlignment="Center" HorizontalAlignment="Center"> 
  4.                <Run Foreground="Blue">前景色Blue</Run><LineBreak></LineBreak> 
  5.                 <Run FontStyle="Italic">字體樣式Italic</Run><LineBreak></LineBreak> 
  6.                <Run  FontSize="30">字體30</Run><LineBreak></LineBreak> 
  7.                <Run  TextDecorations="Underline">下劃線</Run><LineBreak></LineBreak> 
  8.                  <Run  TextDecorations="Underline" 
  9.                         FontSize="30" 
  10.                        FontStyle="Italic" 
  11.                        Foreground="Blue" 
  12.                        Text="綜合" ></Run><LineBreak></LineBreak> 
  13.            </TextBlock> 
  14.        </Grid> 

 實現的是這樣的效果:

 


 上面介紹到的是Inlines 集合的內聯文本,這是說說TextBlock屬性Text的一些特殊用法

案例代碼:

  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
  3.             <TextBlock x:Name="tbShow"  Foreground="White" 
  4.                        VerticalAlignment="Center" HorizontalAlignment="Center" 
  5.                        Text="π表示3.14" 
  6.                        > 
  7.             </TextBlock> 
  8.         </Grid> 

 它實現的效果是:

 

還比如。表示句號(。), 表示回車, 表示換行,當然你可以看出格式都差不多,可以更改最後一個字母或數字看看變成什麼,比如

〇是一個圓圈;當用到換行的時候,我們可以設置TextBlock的屬性TextWrapping="Wrap",該屬性表示在顯示文本超過容器所限制的寬度時,文本會自動換行;

也可以設置文本對齊方式,TextAlignment屬性可以甚至爲:left,right,center;

如果你在textblock設置了fontfamily屬性,並且名字寫錯的話,不會造成什麼後果,系統會使用默認的字體 ,但是從隱藏文件獲取字體的話還是獲取到的是錯誤字體;



MediaElement

 表示的是播放媒體,目前支持mp4,wma,mp3,wmv(ps:我剛剛從優酷找到一個swf格式的不支持),MediaElement的屬性AutoPlay屬性默認爲True,所以當視頻緩衝到可以播放的時候,視頻會自動播放

 參考書上的地址設置了播放源,xaml代碼如下

  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.        <Grid x:Name="ContentPanel" Background="AntiqueWhite" Grid.Row="1" Margin="12,0,12,0"> 
  3.  
  4.            <MediaElement Source="http://www.charlespetzold.com/Media/Walrus.wmv" ></MediaElement> 
  5.        </Grid> 

 在播放途中截圖:

 

 話說這就是Charles Petzold,不管怎樣感謝他帶給我們的知識,也可訪問他本人的網站http://www.charlespetzold.com/

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章