【转】WPF从我炫系统5---基本控件的用法
今天我來(lái)給大家講解WPF中一些基本控件的用法,所謂基本控件,就是我們最常用用到的一些控件,通過(guò)這一節(jié)的講解,大家會(huì)對(duì)WPF中的控件的用法有一個(gè)更深入的了解。
1.???????基本控件
LABEL控件
Label控件是我們最熟悉的控件,基本上在windows程序或者ASP.NET程序里面都有這個(gè)控件,在WPF中LABEL屬于內(nèi)容控件,不僅可以顯示文字,還可以顯示更豐富的信息。LABEL控件與TextBox控件相關(guān)聯(lián),??可以為T(mén)extbox控件設(shè)置快捷鍵.
在下面的這個(gè)例子中,用戶按下F鍵,文本框控件就會(huì)獲得焦點(diǎn)。
效果圖:
?
如果為textbox設(shè)置快捷鍵,只要在LABEL的內(nèi)容中輸入下劃線加上快捷鍵字符就可以了,在顯示的時(shí)候下劃線是不會(huì)顯示出來(lái)的。
代碼
????????<Label?Content="_F用??戶?ì名?"?Height="28"?HorizontalAlignment="Left"?Margin="36,62,0,0"?Name="label1"?VerticalAlignment="Top"??Target="{Binding?ElementName=textBox1}"/>
????????<TextBox?Height="23"?HorizontalAlignment="Left"?Margin="93,62,0,0"?Name="textBox1"?VerticalAlignment="Top"?Width="120" />
?
Label控件不支持換行。但是可以在LABEL控件的內(nèi)容面板中放在Textblock控件實(shí)現(xiàn)換行.,也可以使用AccessText來(lái)實(shí)現(xiàn)
代碼
<Label??Margin="36,84,268,0"?Name="label2"?VerticalAlignment="Top"??Target="{Binding?ElementName=textBox2}">
????????????<ContentControl>
????????????<AccessText?TextWrapping="Wrap">
????????????????_P密¨1碼?:可¨|以°?實(shí)o|ì現(xiàn)?
????????????????換?行D</AccessText>
????????????</ContentControl>
????????</Label>
????????<TextBox?Height="23"?HorizontalAlignment="Right"?Margin="0,140,115,0"?Name="textBox2"?VerticalAlignment="Top"?Width="120" />
?
TextBlock控件
TextBlock控件和lable控件一樣,用來(lái)顯示內(nèi)容,但是TextBlock控件支持換行.,不支持快捷鍵訪問(wèn)操作。
TextBlock中的內(nèi)容可以顯示帶格式的文本。使用TextDecorations屬性可以設(shè)置文本的樣式。
效果圖
?
代碼
<Grid>
????????<TextBlock?Height="23"??Text="中D華a人¨?民?共2和¨a國(guó)¨2"?Name="textBlock1"??TextDecorations="BaseLine">
??????????
????????</TextBlock>
????????<TextBlock?Height="23"?HorizontalAlignment="Left"?Margin="37,188,0,0"?Name="textBlock2"??VerticalAlignment="Top"?Width="152" >
?????????????<Run?Text="刪|?除y線?"?TextDecorations="Strikethrough"></Run>
????????????<Run?Text="上|?劃?線?"?TextDecorations="OverLine"></Run>
????????????<Run?Text="基¨′線?"?TextDecorations="Baseline"></Run>
????????????<Run?Text="下?劃?線?"?TextDecorations="Underline"></Run>
????????</TextBlock>
????</Grid>
使用Run標(biāo)記可以定義多個(gè)文本,并指定不同的格式.
?
TextBox控件
TextBox控件和winform中的TextBox控件一樣,可以用來(lái)顯示輸入文本內(nèi)容.有以下屬性是TextBox常用的
TextWrapping:設(shè)置TextBox是否換行
VerticalScrollBarVisibility :設(shè)置TextBox是否顯示滾動(dòng)條,以及滾動(dòng)條怎樣顯示.
Language:屬性來(lái)改變文本框的語(yǔ)言。
SpellCheck.IsEnabled:是否開(kāi)啟拼寫(xiě)檢查.配合Language屬性使用
?
PasswordBox控件
PasswordBox控件是密碼框控件,可以為其設(shè)置掩碼來(lái)隱藏用戶所輸入的內(nèi)容。這個(gè)控件在WINFORM中我們比較常用,用法差不多,這里就講解了.
?
Button控件
Button控件是我們用到最多的控件,在WPF中有三種類型的按鈕控件,普通的按鈕,CHEKCBOX,radiobutton,這些控件都繼承在buttonbase類.
Button控件屬于內(nèi)容控件.對(duì)于button控件,我們可能最熟悉的就是單擊事件,button控件有一個(gè)ClickMode屬性,?可以控制單擊事件何時(shí)發(fā)生。
Release:Button被按下然后松開(kāi)時(shí)發(fā)生單擊事件
Hover:鼠標(biāo)懸停在按鈕上方引發(fā)單擊事件
Press:當(dāng)單擊按鈕時(shí)引發(fā)單擊事件
下面這個(gè)demo通過(guò)不同的單擊方式設(shè)置來(lái)改變窗體的背景色
效果圖
?
代碼
??<Button?Content="Press"?Height="23"?HorizontalAlignment="Left"?Margin="71,16,0,0"?Name="button1"?VerticalAlignment="Top"?Width="75"?Click="button1_Click"??ClickMode="Press"/>
????????<Button?Content="Hover"?Height="23"?Name="Hover"?VerticalAlignment="Top"?Width="75"???ClickMode="Hover"?Margin="71,72,132,0"?Click="Hover_Click" />
????????<Button?Content="Release"?Height="23"?Name="Release"?VerticalAlignment="Top"?Width="75"?Margin="72,127,132,0"??ClickMode="Release"?Click="Release_Click" />
除此之外,BUTTON控件還有兩個(gè)重要的屬性
IsCancel:表示按鈕是一個(gè)取消按鈕,用戶可以在任意位置按下esc健觸發(fā)該按鈕
IsDefault:表示按鈕是當(dāng)前默認(rèn)按鈕,用戶可以按下?enter鍵觸發(fā)該按鈕.
?
除了Button按鈕之外,WPF還提供了另外兩種類型的按鈕控件,ToggleButton和RepeateButton..
顧名思義. ToggleButton是改變狀態(tài)按鈕,當(dāng)單擊時(shí)該按鈕處于一種狀態(tài),再次單擊時(shí)按鈕處于另一種狀態(tài).
ToggleButton提供了一個(gè)ischeck屬性,當(dāng)為true時(shí)表示選中,當(dāng)為false事表示為選中。還有一個(gè)null值,表示沒(méi)進(jìn)行選擇,處于不確定狀態(tài).
RepeateButton表示當(dāng)按下按鈕后不放,將進(jìn)行持續(xù)性的操作,普通按鈕按按下后只觸發(fā)一次事件.
下面我們來(lái)結(jié)合這兩個(gè)按鈕來(lái)做一個(gè)DEMO,當(dāng)ToggleButton處于選中?狀態(tài)時(shí),點(diǎn)擊RepeateButton,進(jìn)行數(shù)字遞增操作,當(dāng)ToggleButton處于未選擇狀態(tài)時(shí),進(jìn)行數(shù)字遞減操作.
效果圖
?
?
D代碼
Xmal代碼
<Grid>
????????<ToggleButton?Name="toggle"?Margin="38,46,216,223"?IsThreeState="False"??Content="togglebututo點(diǎn)ì?擊??我¨°"?Checked="ToggleButton_Checked"?Click="toggle_Click"></ToggleButton>
????????<Label?Content="0"?Height="28"?HorizontalAlignment="Left"?Margin="38,121,0,0"?Name="label1"?VerticalAlignment="Top" />
????????<RepeatButton?Name="repeate"?Content="repeatbutton點(diǎn)ì?擊??我¨°"?Margin="157,120,101,119"?Click="RepeatButton_Click"></RepeatButton>
????</Grid>
?
Xmal.Cs代碼
int?num = 0;
????????private?void?RepeatButton_Click(object?sender,?RoutedEventArgs?e)
????????{
????????????if?(toggle.IsChecked ==?true)
????????????{
????????????????num += 1;
????????????}
????????????else
????????????{
????????????????num -= 1;
????????????}
?????????
????????????label1.Content = num.ToString();
????????}
?
?????????private?void?toggle_Click(object?sender,?RoutedEventArgs?e)
????????{
????????????if?(toggle.IsChecked ==?true)
????????????{
????????????????toggle.Content =?"toggle被à?選?中D";
????????????}
????????????else
????????????{
????????????????toggle.Content =?"toggle未??被à?選?中D";
????????????}
????????}
?
?
CheckBox和RadioButton
這兩個(gè)控件和我們WINFORM中用的CheckBox和RadioButton控件一樣。這兩個(gè)控件都派生自ToggleButton類。因此他們也有三種狀態(tài),關(guān)于這兩種控件的用法,我就不在多說(shuō),用戶可以自己進(jìn)行試驗(yàn).
總結(jié)
以上是生活随笔為你收集整理的【转】WPF从我炫系统5---基本控件的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微醺快乐水火出圈 开车千万别喝:检测超醉
- 下一篇: [你必须知道的.NET] 第七回:品味类