天天看點

WPF快速指導11:輸入和指令

WPF快速指導11:輸入和指令

本文摘要:

1:輸入的種類;

2:指令    

1:輸入的種類

    可在基元素類上找到公開的主輸入 API:

UIElement ContentElement FrameworkElement FrameworkContentElement 。除了基元素類上的輸入 API, Keyboard 類和 Mouse 類還提供了用于處理鍵盤和滑鼠輸入的其他 API。 類上的輸入 API 的示例有 Modifiers 屬性(用于傳回目前按下的 ModifierKeys )和 IsKeyDown

方法(用于确定是否按下了指定的鍵)。

    下面的示例使用

GetKeyStates 方法确定 Key 是否處于按下狀态。

if ((Keyboard.GetKeyStates(Key.Return) & KeyStates.Down) > 0)
{
    btnNone.Background = Brushes.Red;
}      
MiddleButton

(用于擷取滑鼠中鍵的狀态)和

DirectlyOver

(用于擷取滑鼠指針目前位于其上的元素)。

     下面的示例确定滑鼠上的

LeftButton

是否處于

Pressed

狀态。

if (Mouse.LeftButton == MouseButtonState.Pressed)
{
    UpdateSampleResults("Left Button Pressed");
}      

     還有一類是觸筆輸入

Stylus

,在這裡不做贅述。

     使用指令,輸入處理可以更多地在語義級别(而不是在裝置輸入級别)進行。指令是簡單的指令,如 Cut、Copy、Paste 或 Open。指令對于集中指令邏輯很有用。同一指令可通過

Menu

、在

ToolBar

上或者通過鍵盤快捷方式來通路。指令還提供了在指令不可用時禁用控件的機制。

RoutedCommand

ICommand

的 WPF 實作。執行

時,将在指令目标上引發

PreviewExecuted Executed

事件,這兩個事件與其他輸入一樣,都通過元素樹進行隧道和冒泡操作。如果未設定指令目标,則具有鍵盤焦點的元素将成為指令目标。執行該指令的邏輯将附加到

CommandBinding

。當

事件通路該特定指令的

時,将調用

上的

ExecutedRoutedEventHandler

。此處理程式執行指令的操作。

     WPF 提供了一個由

ApplicationCommands MediaCommands ComponentCommands NavigationCommands EditingCommands

組成的常見指令庫,您也可以定義自己的指令庫。

     WPF 中的路由指令模型可以分為四個主要概念:指令、指令源、指令目标以及指令綁定:

  • 指令是要執行的操作。
  • 指令源是調用指令的對象。
  • 指令目标是在其上執行指令的對象。
  • 指令綁定是将指令邏輯映射到指令的對象。
TMJ .NET教育訓練,開創 200元/月,學到會!
NET C# 入門級 .NET C# 專業級 .NET 架構級 BS系統專業級 BS系統安全

1.開篇及C#程式、解決方案的結構

2.源碼管理之TFS入門

3.打老鼠初級

……

21.CMS之主要功能實作

22.程序和線程基礎

23.類型轉換

24.算法基礎

25.初級課程之剩餘知識點

1.消滅打老鼠遊戲中的自定義委托

2.垃圾回收

3.Dispose模式

16.異常使用指導

17.最常用的重構指導

18.Debug和IDE的進階

19.Resharper的使用

20.ILSPY的使用

1.Socket入門

2.打造打老鼠遊戲網絡版

3.WCF入門

10.依賴注入

11.萬物兼可測試

12.軟體名額之覆寫率計算

13.軟體名額之代碼行

14.軟體名額之圈複雜度、嵌套深度

1.HTML

2.WebForm原理

3.CSS必知必會

19.讓浏覽器緩存Shop

20.Asp.net的生命周期

21.Asp.net網站的釋出以及調試晉級

22.BS程式的本質

23.壓力測試我們的Shop

1.Fiddler必知必會

2.IE開發者工具必知必會

3.跨站腳本防範

4.權限欺騙防範

5.參數越界防範

6.會話劫持防範

7.CSRF防範

8.盜鍊防範

9.靜态檔案的保護

将本文分享到:

QQ空間 新浪微網誌 人人網 開心網 搜狐微網誌 MSN 谷歌 更多
WPF快速指導11:輸入和指令

本文基于

Creative Commons Attribution 2.5 China Mainland License

釋出,歡迎轉載,演繹或用于商業目的,但是必須保留本文的署名

http://www.cnblogs.com/luminji

(包含連結)。如您有任何疑問或者授權方面的協商,請給我留言。

繼續閱讀