在 Text 屬性集,如以下範例:
<TextBlock>Hello, world!</TextBlock>
|
|
|---|
|
設定 XAML 概觀。 |
使用 Run 和 LineBreak 物件
TextBlock 模型中的項目 (Item)。
下列 XAML 範例示範如何在 LineBreak 分隔。
as Run objects within a TextBlock. --> <Canvas> <TextBlock FontFamily="Arial" Width="400" Text="Sample text formatting runs"> <LineBreak/> <Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run> <LineBreak/> <Run Foreground="Teal" FontFamily="Times New Roman" FontSize="18" FontStyle="Italic">Times New Roman Italic 18</Run> <LineBreak/> <Run Foreground="SteelBlue" FontFamily="Verdana" FontSize="14" FontWeight="Bold">Verdana Bold 14</Run> </TextBlock> </Canvas>
下圖顯示先前 XAML 內容範例所轉譯的格式化文字。
TextBlock rendering multiple Run objects
LineBreak 物件的情況下的呈現方式。
以程式碼存取 TextBlock 文字模型
文字換行
TextBlock 中的文字不會自動換行。 因為沒有換行,所以根據其他設定,文字可能發生下列其中一種情況:
-
如果 TextBlock 一定會在某個其他的容器父項目中,而且會到達配置父項的鏈結 (Chain),此處也一定是寬度條件約束。 如果超過執行的配置條件約束寬度,則會導致文字被剪裁。
-
如果 TextBlock 會自行進行文字剪裁。
如果要使用自動換行,請將 。 開啟文字換行:
因為 Width,便可以比較這兩個值。
如需詳細資訊,請參閱 TextWrapping。
多行 TextBlock 文字
會因為自動換行或明確 .BlockLineHeight 會以「區塊」字型設計度量 (也會儲存為字型中的值) 做為有效文字行高度的基準。
套用轉換到 TextBlock 文字
轉換可改變您的應用程式中所顯示的文字。 轉換是一般的 UI 項目概念,適用於許多不同的類別,包括文字項目。 您會在文字上使用轉換效果以及其他可能的使用案例包含下列:
RotateTransform,反轉文字
ScaleTransform,用於大於字型中所繼承之支援大小上限的文字
SkewTransform,用於切變或斜體模擬
TranslateTransform,用於位移與陰影效果
當您在文字中套用轉換時,首先應該考慮是否還有其他方法可以使用文字項目屬性而產生類似的效果。 例如,如果字型家旅支援斜體 FontStyle,那麼比起套用 ScaleTransform,也可以獲得較理想的效果。
您可能需要在文字上使用轉換的一個使用案例是,您可以設定轉換的動畫,以產生視覺效果。
建立 TextBlock 文字的動畫
許多文字屬性 (Property) 的值可以建立成動畫,包含 FontSize 的文字大小、透過 動畫概觀。
將文字屬性 (尤其是大小或前景筆刷) 建立成動畫可能會耗用許多系統資源。 這是因為 Silverlight 在呈現文字時,會使用提示來使每個文字圖像變平滑。 如果您建立文字大小的動畫 (藉由使用 FontSize),則 Silverlight 會提示每個畫面的圖像,這是很耗費資源的,並可能會造成畫面捨棄。 如果應用程式需要對大型文字進行動態縮放變更,則建議您使用下列其中一種替代方案:
-
以向量圖形模擬文字,例如 Path。
-
在要在其中設定文字動畫的項目上,將附加屬性 TextOptions。
利用LineBreak實現文本豎排:實做見 http://www.cnblogs.com/JinDin/archive/2010/03/21/1691206.html