原文:潜移默化学会WPF--Command(命令)学习(一) - AYUI框架 - 博客园
1.Command心法
1.1 接触
在窗体上可以定义<Window.CommandBindings>,这个跟 资源 类比,然后这样定义
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.New"
Executed="NewCommand" />
</Window.CommandBindings>
这样可以方便下面内容可以调用它,跟 资源 很像Command="ApplicationCommands.New" 表示新建,Command的值可以是其他的,例如复制(Copy),剪切(Cut)...至于其他的你可以自己试试,系统已经定义好的,当然你也可以自定义命令。 Executed 的值 是个事件名,也就是当你 按Ctrl+N 时,会执行后台定义好的事件NewCommand里面的方法。命令也可以这样调用
1.2 潜移默化
<Menu>
<MenuItem Header="File">
<MenuItem Command="New"></MenuItem>
</MenuItem>
</Menu>
<Button Margin="5" Padding="5" Command="ApplicationCommands.New"
ToolTip="{x:Static ApplicationCommands.Copy}">New</Button>
1.3 具体代码
<Window x:Class="Commands.TestNewCommand" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TestNewCommand" Height="134" Width="281" > <Window.CommandBindings> <CommandBinding Command="ApplicationCommands.New" Executed="NewCommand" /> </Window.CommandBindings> <StackPanel > <Menu> <MenuItem Header="File"> <MenuItem Command="New"></MenuItem> </MenuItem> </Menu> <Button Margin="5" Padding="5" Command="ApplicationCommands.New" ToolTip="{x:Static ApplicationCommands.Copy}">New</Button> </StackPanel></Window>
后台代码
?
|
效果:
通过菜单单击,或者按钮单击都会调用NewCommand这个方法,只不过事件源不一样
补充:
默认 ApplicationCommands.New 会在菜单中显示 新建 Ctrl+N 这种提示,你可以通过
ApplicationCommands.New.Text = "你想要的值";修改
你也可以后台动态添加命令:
CommandBinding bindingNew = new CommandBinding(ApplicationCommands.New);
bindingNew.Executed += NewCommand;
this.CommandBindings.Add(bindingNew);
这个就不用我讲解了吧,你懂的,呵呵。
下一章你将会掌握Command
原文地址:https://www.cnblogs.com/lonelyxmas/p/10459037.html