本篇為大家簡單介紹Windows 商店應用中控件的用法,為方便講解,我們在文本控件和按鈕控件這兩類中分別挑選有代表性的控件進行詳細說明。
1. 文本控件
(1) TextBlock
TextBlock是最常用的文本顯示控件,重點關注以下屬性:
CharacterSpacing 字符之前的統一間距,間距 = 字體大小 / 1000。默認為0,正值增進跟蹤和放寬字符間距。負值減少跟蹤和收緊字符調間距。
IsColorFontEnabled 布爾值,確定顏色標志符號是否以彩色顯示。如果顏色標志符號以彩色顯示,則為 true;否則為 false。 默認為 true。
LineStackingStrategy 枚舉值,確定每行行高的策略。有MaxHeight(默認值)、BaselineToBaseline 和 BlockLineHeight 三種。MaxHeight:每行行高以LineHeight和元素的自然高度中的最大值為准,BaselineToBaseline:每行行高以文本基線之間的距離為准,BlockLineHeight:每行行高以LineHeight為准。
OpticalMarginAlignment 枚舉值,指定在與文本容器邊界對齊時如何處理每個字符版式中靠邊的值。有None(默認值) 和 TrimSideBearings 兩種。None:使用來自字體版式值的側方位,TrimSideBearings:不使用來自字體版式值的邊位,且不將字形的一側與字形"墨跡"部分開始的位置對齊
TextAlignment 枚舉值,指示文本內容的水平對齊方式。有Left(默認值)、Right、Center 和 Justify 四種。Left:左對齊,Right:右對齊,Center:居中,Justify:容器內對齊。
TextLineBounds 枚舉值,影響行高計算的公式。有Full(默認值)、Tight、TrimToBaseline 和 TrimToCapHeight 四種。Full:使用常規行高計算,Tight:行頂部高度是字體的大寫字高,行底部告訴是文本基線,TrimToBaseline:行高的底部是文本基線,TrimToCapHeight:行頂部高度是字體的大寫字高。
TextTrimming 枚舉值,內容溢出內容區域時采取的休整行為。有CharacterEllipsis、Clip、None(默認值) 和 WordEllipsis 四種。CharacterEllipsis:在字符邊界處修整文本。將繪制省略號 (...) 來替代剩余的文本,Clip:在像素級別修整文本,並以可視方式裁剪多余的字形,None:不休整文本,WordEllipsis:在單詞邊界處修整文本。將繪制省略號 (...) 來替代剩余的文本。
TextWrapping 枚舉值,文本進行換行的方式。有NoWrap、Wrap 和 WrapWholeWords 三種。NoWrap:不換行,Wrap:文本行溢出容器的可用寬度,則進行換行。即使最後溢出的是單一單詞,也仍然換行,WrapWholeWords:與Wrap的唯一不同是,對單一單詞不換行。
<TextBlock Text="I am a TextBlock "
CharacterSpacing="100"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontFamily="Arial" FontStyle="Italic" FontSize="50" FontWeight="Black"
IsColorFontEnabled="True"
LineStackingStrategy="BlockLineHeight"
OpticalMarginAlignment="TrimSideBearings"
TextAlignment="Center" TextLineBounds="TrimToBaseline" TextReadingOrder="DetectFromContent"
TextTrimming="WordEllipsis" TextWrapping="WrapWholeWords"
Height="120" Width="500"/>
(2) TextBox
TextBox是文本輸入控件,重點關注以下屬性:
AcceptsReturn 布爾值,確定文本框是否允許換行或回車符。如果文本框允許換行符,則為 true;否則為 false。默認為 false。
FlowDirection 布爾值,確定文本框中內容的流動方向。有LeftToRight 和 RightToLeft 兩種。LeftToRight:內容從左向右流動,RightToLeft:內容哦那個從右向左流動。
Header 文本框標頭內容,默認為null。
InputScope 指定SIP類型,來改變控件輸入范圍。
IsSpellCheckEnabled 布爾值,指定 TextBox 輸入是否應與拼寫檢查引擎交互。如果 TextBox 輸入與拼寫檢查引擎進行交互,則為 True;否則為 false。默認為 false。
IsTextPredictionEnabled 確定是否應啟用此 TextBox 的文本預測功能("自動完成")的值。如果為 true,則啟用文本預測功能;否則為 false。默認為 true。
<TextBox AcceptsReturn="True" Background="AliceBlue" BorderBrush="Blue" BorderThickness="2"
CompositeMode="Inherit" FlowDirection="RightToLeft" FontFamily="Arial" FontStyle="Italic" FontSize="50" FontWeight="Black"
Header="Header Text" InputScope="Number" IsReadOnly="False" IsSpellCheckEnabled="True" IsTextPredictionEnabled="False"
SelectedText="123" SelectionHighlightColor="AliceBlue" HorizontalAlignment="Center" VerticalAlignment="Center"/>
(3)PasswordBox
PasswordBox 是常用的密碼輸入控件,重點關注以下屬性:
MaxLength 由此 PasswordBox 處理的密碼的最大長度, 值為 0 表示沒有限制。默認為 0。
Password PasswordBox 當前保留的密碼。
PasswordChar PasswordBox 的掩碼字符,默認值為 ●。
IsPasswordRevealButtonEnabled 布爾值,指定 PasswordBox 的可視 UI 是否包括切換顯示或隱藏鍵入字符的铵鈕元素。True 顯示密碼顯示按鈕;false 不顯示密碼顯示按鈕。默認為 false。
<PasswordBox Height="50" Width="200" MaxLength="8" Password="123456" PasswordChar="*" IsPasswordRevealButtonEnabled="True"/>
2. 按鈕控件
(1) Button
Button是最常用的按鈕控件,重點關注以下內容:
ClickMode 枚舉值,指示 Click 事件發生時間的值。有Hover、Press 和 Release(默認值)三種。Hover:將鼠標指針移到控件上方時應引發 Click 事件,Press:按下鼠標按鍵且鼠標指針位於控件上方時應引發 Click 事件,如果使用的是鍵盤,則指定在按下空格鍵或 ENTER 鍵且控件具有鍵盤焦點時應引發 Click 事件,Release:按下並松開鼠標左鍵且鼠標指針位於控件上方時應引發 Click 事件,如果使用的是鍵盤,則指定在按下並松開空格鍵或 Enter 鍵且控件具有鍵盤焦點時應引發 Click 事件。
HorizontalContentAlignment 枚舉值,控件內容的水平對齊方式。有Center(默認值)、Left、Right 和 Stretch四種。Center:與父元素布局的中心對齊元素,Left:與父元素布局的左側對齊元素,Right:與父元素布局的右側對齊元素,Stretch:拉伸以填充整個父元素布局槽的元素。
VerticalContentAlignment 枚舉值,控件內容的垂直對齊方式。有Center(默認值)、Bottom、Top 和 Stretch四種。
Flyout 與此按鈕關聯的浮出控件。當按鈕點擊時,Flyout控件浮出,再點擊按鈕或空白處,Flyout消失。
<Button Content="Click Me." ClickMode="Release" HorizontalContentAlignment="Left" VerticalContentAlignment="Top"
FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Height="200" Width="400" Click="Button_Click">
<Button.Flyout>
<Flyout>
<TextBlock Text="I am flyout content."/>
</Flyout>
</Button.Flyout>
</Button>
查看本欄目