- 浏览: 36056 次
- 性别:
- 来自: 北京
文章分类
最新评论
Commands
In WPF, a command is a function or action(f.e,making the selected text bold) that can be bound to an input gesture(user actions,some way that a user provides input to an application,the gestures are all routed events).
four central concepts underlying commands:
The command itself is the action that’s going to be executed;
The source is the object that is invoking the command, such as a button or menu;
The target is the subject that the command is affecting, such as the currently selected text;
Finally, the binding is the object that links the actual implementation of the action to the command.
ApplicationCommands | commonly used commands such as Cut, Copy, Paste, New, Open, Save, Undo, Close etc |
ComponentCommands | for moving around inside an application,more general use than editing commands as well as navigation commands,commands such as MoveDown, ExtendSelectionLeft, ScrollByLine,SelectToEnd,etc |
EditingCommands | helpful for dealing with text,includes commands for alignment, formatting, and the navigation of text,such as ToggleBold, AlignLeft, and DecreaseFontSize |
MediaCommands | commands for controlling audio and video in your applications. Some typical commands are Play,Pause, and IncreaseVolume |
NavigationCommands | useful for navigating in an application built around a web browser metaphor.Commands include BrowseForward, NextPage,PreviousPage, Refresh, and Search. |
<ToggleButton x:Name=”boldButton”
Command=”EditingCommands.ToggleBold”
ToolTip=”Bold”>
<Button Command=”ApplicationCommands.Cut”
ToolTip=”Cut”>
<Image Source=”Icons/cut.png” />
</Button>
Building commands to the menu
<MenuItem Header=”_Edit”>
<MenuItem Command=”ApplicationCommands.Undo” />
<MenuItem Command=”ApplicationCommands.Redo” />
<Separator />
<MenuItem Command=”ApplicationCommands.Cut” />
<MenuItem Command=”ApplicationCommands.Copy” />
<MenuItem Command=”ApplicationCommands.Paste” />
<MenuItem Command=”EditingCommands.Delete” />
</MenuItem>
CommandBindings
is a library of commands available to UIElement and any of its child elements.It's a collection;
map the command bindings to event handlers
MainWindow.xaml:
<Window.CommandBindings>
<CommandBinding Command=”ApplicationCommands.New”
Executed=”NewDocument” />
</Window.CommandBindings>
The command binding must point to an event handler with an ExecutedRoutedEventArgs parameter.
MainWindow.xaml.cs:
private void NewDocument(object sender,ExecutedRoutedEventArgs e)
{
_documentManager.NewDocument(); status.Text = “New Document”;
status.Text = “New Document”;
}
TextEditorMenu.xaml:
<MenuItem Command=”ApplicationCommands.New” />
CanExecute event判断是否可执行
mainwindow.xaml
<CommandBinding Command=”ApplicationCommands.Save”
CanExecute=”SaveDocument_CanExecute”
Executed=”SaveDocument” />
DocumentManager
public bool CanSaveDocument()
{
return !string.IsNullOrEmpty(_currentFile);
}
mainwindow.xaml.cs
private void SaveDocument_CanExecute(object sender,CanExecuteRoutedEventArgs e)
{
e.CanExecute = _documentManager.CanSaveDocument();
}
input binding:
Input bindings are similar to the command bindings,UIElement defines a collection of input bindings that are automatically available to all of the element’s children;
two types,KeyBinding and MouseBinding(KeyBinding is for activating commands with the keyboard,and MouseBinding is for activating them with the mouse);
Gesture attribute
Gesture = MouseAction [+ ModifierKeys]
<Window.InputBindings>
<MouseBinding Gesture=”Control+WheelClick”
Command=”ApplicationCommands.SaveAs” />
</Window.InputBindings>
Key,Modifiers attribute(Key is the required attribute, whereas Modifiers is optional;Modifiers expects a value from the same ModifierKeys enumeration we used in the MouseBinding)
<Window.InputBindings>
<KeyBinding Key=”S”
Modifiers=”Shift”
Command=”ApplicationCommands.SaveAs” />
</Window.InputBindings>
结合标志,可以是"+"也可以是"|";其实,通常情况下,除了ModifiersKeys,wpf中都是使用管道结合标志符。
小结:
到目前为止,已经出现了多种绑定(binding)-databinding、CommandBinding、InputBinding(KeyBinding、MouseBinding).
发表评论
-
wpf应用实例
2010-07-24 15:45 1065使用WPF快速创建可拖拽的对象和窗体。 -
业务流的前端,intel终极理想:感应终端环境与任意平面成屏技术
2010-07-08 12:44 1024在欧美等人力成本高 ... -
wpf 研习1-24小时自学wpf16
2010-06-15 23:21 1382Visualizing Lists-displaying mo ... -
wpf 研习1-24小时自学wpf15
2010-06-14 23:25 936deeper into data binding ad ... -
wpf 研习1-24小时自学wpf14
2010-06-13 10:27 1402Resources and Styles 从下图,我们 ... -
wpf 研习1-24小时自学wpf13
2010-06-11 23:04 910Presenters and Views-the Shell ... -
wpf 研习1-24小时自学wpf12
2010-06-11 14:26 770A Contact Manager Choosin ... -
wpf 研习1-24小时自学wpf11
2010-06-10 15:02 971output WPF Document Con ... -
了解WPF中的路由事件和命令
2010-06-09 23:12 1333路由事件浏览 (1)在vs designer中,如在窗口中增 ... -
wpf 研习1-24小时自学wpf9
2010-06-08 19:19 774events handle routed event: ... -
wpf 研习1-24小时自学wpf8
2010-06-07 16:10 887A real-world program basic ... -
wpf 研习1-24小时自学wpf7
2010-06-07 11:04 847Application deployable file ... -
wpf 研习1-24小时自学wpf6
2010-06-05 17:14 874Data Binding markup extensi ... -
wpf 研习1-24小时自学wpf5
2010-06-05 16:14 1066basic Control Control base ... -
wpf 研习1-24小时自学wpf4
2010-06-05 11:31 668Layout Panel,Decorator; Sy ... -
wpf 研习1-24小时自学wpf3
2010-06-04 19:11 813wpf项目文件 vs->新项目->wpf应用程序 ... -
wpf 研习1-24小时自学wpf2
2010-06-04 15:39 829XAML,既然用户控件是一个大类,那么干脆对这个集合进行统一的 ... -
wpf 研习1-24小时自学wpf1
2010-06-04 12:05 728WPF是微软.net的UI 架构,也是非常重要的框架。 ... -
wpf主要知识点
2010-06-04 10:47 983template,presenter,layout,visua ... -
路由事件
2010-05-17 22:09 649如果我们在一个窗口上增加一个按钮,并且看下它的后置代码,会发现 ...
相关推荐
本文将围绕“wpf 研习1-24小时自学wpf6”这一主题,探讨WPF的核心概念和技术,旨在帮助初学者快速上手并深入理解这一强大的UI框架。 WPF是微软.NET Framework的一部分,它提供了全面的图形系统,包括2D和3D渲染、...
【标题】:“WPF研习1-24小时自学WPF9” 在Windows Presentation Foundation(WPF)的世界里,这是一段深入学习之旅的开端。WPF是.NET Framework的一个重要组成部分,它为创建丰富的、高性能的桌面应用程序提供了...
标题 "wpf 研习1-24小时自学wpf7" 提示我们这是一个关于Windows Presentation Foundation(WPF)的学习资源,可能是书籍、课程或教程的一部分,旨在帮助初学者在24小时内掌握WPF的基础知识。WPF是.NET Framework中的...
【标题】:“wpf 研习1-24小时自学wpf8”是指一系列针对Windows Presentation Foundation(WPF)框架的学习教程,旨在帮助初学者在24小时内掌握WPF的基础知识和应用技巧。WPF是.NET Framework的一部分,用于构建...
NULL 博文链接:https://x-dome.iteye.com/blog/684355
对于想要开发Windows应用的学员,WinForms和WPF(Windows Presentation Foundation)的使用也会有所介绍。 在幻灯片部分,可能会包含每章节的重点摘要,清晰的示例图解,以及关键概念的解释,帮助学生更好地吸收和...