版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度場(chǎng)營銷分公司智慧城市項(xiàng)目合作協(xié)議3篇
- 二零二五版商業(yè)街區(qū)場(chǎng)地租賃合作協(xié)議書6篇
- 2025年度高新技術(shù)產(chǎn)業(yè)常年法律顧問聘用協(xié)議3篇
- 二零二五年度企業(yè)稅收籌劃與稅收籌劃實(shí)施合同3篇
- 二零二五年度出口退稅證明開具及國際金融服務(wù)合同3篇
- 二零二五年度港口碼頭租賃及港口貨物裝卸、倉儲(chǔ)及配送服務(wù)協(xié)議8篇
- 二零二五年度土地承包經(jīng)營權(quán)糾紛調(diào)解合同-@-2
- 2025草原禁牧與水資源保護(hù)管理協(xié)議合同3篇
- 2025年度個(gè)人個(gè)人借款合同信用評(píng)估標(biāo)準(zhǔn)3篇
- 二零二五食用油產(chǎn)品包裝設(shè)計(jì)與印刷合同
- 中考模擬考試化學(xué)試卷與答案解析(共三套)
- 新人教版五年級(jí)小學(xué)數(shù)學(xué)全冊(cè)奧數(shù)(含答案)
- 風(fēng)電場(chǎng)升壓站培訓(xùn)課件
- 收納盒注塑模具設(shè)計(jì)(論文-任務(wù)書-開題報(bào)告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號(hào)處理與特征提取
- 高中數(shù)學(xué)知識(shí)點(diǎn)全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測(cè)定
- 2023新譯林版新教材高中英語必修一重點(diǎn)詞組歸納總結(jié)
- 蘇教版四年級(jí)數(shù)學(xué)下冊(cè)第3單元第2課時(shí)“常見的數(shù)量關(guān)系”教案
評(píng)論
0/150
提交評(píng)論