WPF應(yīng)用開發(fā)項(xiàng)目教程課件4.3 WPF命令_第1頁
WPF應(yīng)用開發(fā)項(xiàng)目教程課件4.3 WPF命令_第2頁
WPF應(yīng)用開發(fā)項(xiàng)目教程課件4.3 WPF命令_第3頁
WPF應(yīng)用開發(fā)項(xiàng)目教程課件4.3 WPF命令_第4頁
WPF應(yīng)用開發(fā)項(xiàng)目教程課件4.3 WPF命令_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目四WPF命令—實(shí)現(xiàn)窗體的清除功能

——任務(wù)三創(chuàng)建使用自定義命令的程序

實(shí)現(xiàn)的是點(diǎn)擊淺藍(lán)色控件時(shí),彈出對(duì)話框,顯示文本框里面的內(nèi)容。運(yùn)行效果如圖。一、任務(wù)描述:二、知識(shí)準(zhǔn)備:1自定義命令

一般情況下,程序中使用與邏輯無關(guān)的RoutedCommand就足夠了,但為了使程序的結(jié)構(gòu)更簡潔,我們常常要定義自己的命令。WPF的命令式實(shí)現(xiàn)了Icommand接口的類。Icommand只包含兩個(gè)方法和一個(gè)事件,先看一下ICommand接口的原型:二、知識(shí)準(zhǔn)備:1、自定義命令eventEventHandler

CanExecuteChanged;bool

CanExecute(objectparameter);voidExecute(objectparameter);二、知識(shí)準(zhǔn)備:1、自定義命令其中第一個(gè)事件為,當(dāng)命令可執(zhí)行狀態(tài)發(fā)生改變時(shí),可以激化此事件來通知其他對(duì)象。另外兩個(gè)方法在上面已經(jīng)用過同名的,在此不做重復(fù)說明。

下面開始實(shí)現(xiàn)一個(gè)自定義直接實(shí)現(xiàn)ICommand接口的命令,實(shí)現(xiàn)點(diǎn)擊源控件,清除目標(biāo)控件的內(nèi)容。

從ICommand接口開始,實(shí)現(xiàn)一個(gè)自定義命令。該自定義命令不再需要CommandBindings來進(jìn)行命令綁定,在命令里面實(shí)現(xiàn)了相關(guān)的業(yè)務(wù)處理,使代碼更清晰。三、任務(wù)分析:從ICommand接口開始,實(shí)現(xiàn)一個(gè)自定義命令。該自定義命令不再需要CommandBindings來進(jìn)行命令綁定,在命令里面實(shí)現(xiàn)了相關(guān)的業(yè)務(wù)處理,使代碼更清晰。1.新建WPF項(xiàng)目,名稱為DefineCommand。右鍵單擊項(xiàng)目,添加類文件,名稱為MyCommand。2.繼承ICommand,實(shí)現(xiàn)自定義MyCommand。

該命令功能為彈出對(duì)話框,顯示文本框的內(nèi)容。這里將命令目標(biāo)作為Execute的參數(shù)。三、任務(wù)實(shí)施:注意,此時(shí)需要usingSystem.Windows.Input;對(duì)ICommand進(jìn)行解析。三、任務(wù)實(shí)施:classMyCommand:ICommand{publiceventEventHandler

CanExecuteChanged;publicbool

CanExecute(objectparameter){thrownewSystem.NotImplementedException();}三、任務(wù)實(shí)施:publicvoidExecute(objectparameter){

TextBox

txtCmd=parameterasTextBox;if(cmd!=null){

MessageBox.Show(txtCmd.Text);}}}3.右鍵單擊項(xiàng)目,新建類文件,名稱為MyCommandSource。創(chuàng)建命令源。

自定義命令需要有命令源來發(fā)送他們,通過繼承ICommandSource來實(shí)現(xiàn)命令源。下面通過控件的OnMouseLeftButtonUp事件來發(fā)送命令。三、任務(wù)實(shí)施:classMyCommandSource:System.Windows.Controls.TextBlock,ICommandSource{//自定義命令源}publicICommandCommand{get;set;}publicobjectCommandParameter{get;set;}publicIInputElement

CommandTarget{get;set;}//重寫點(diǎn)擊處理函數(shù)protectedoverridevoidOnMouseLeftButtonUp(MouseButtonEventArgse){

base.OnMouseLeftButtonUp(e);if(this.CommandTarget!=null){this.Command.Execute(this.CommandTarget);}}三、任務(wù)實(shí)施:4.使用命令源進(jìn)行界面布局。

界面主要控件為一個(gè)文本框(作為命令目標(biāo))和命令源MyCommandSource。如果希望在XAML中使用自定義的控件,首先需要將.NET名稱空間映射為一個(gè)XAML名稱空間。此任務(wù)中,自定義的命令類位于DefineCommand名稱空間(對(duì)于名為DefineCommand的項(xiàng)目,這是默認(rèn)的名稱空間),應(yīng)當(dāng)添加如下的名稱空間映射:三、任務(wù)實(shí)施:xmlns:local="clr-namespace:DefineCommand"<Window……

xmlns:local="clr-namespace:DefineCommand"Title="MainWindow"Height="350"Width="525"><BorderBorderBrush="LawnGreen"BorderThickness="2"><Grid><Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions>三、任務(wù)實(shí)施:<TextBoxText="自定義命令測(cè)試,請(qǐng)輸入內(nèi)容:"TextAlignment="Center"VerticalAlignment="Center"FontSize="18"/><TextBoxx:Name="myTxt"Height="40"Margin="18"Grid.Column="1"Grid.Row="0"/><local:MyCommandSourcex:Name="mySource"Grid.Row="1"Grid.ColumnSpan="2"Text="點(diǎn)擊此色塊自定義命令測(cè)試"FontSize="23"TextAlignment="Center"VerticalAlignment="Center"Height="110"Width="410"Background="LightBlue"/></Grid></Border></Window>三、任務(wù)實(shí)施:5.命令關(guān)聯(lián),為命令源附上MyCommand命令。

{

InitializeComponent();//由于命令具有"全局性",//所以一般聲明在靜態(tài)全局的地方,供全局使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論