潜移默化学会WPF--Command(命令)学习(一) - AYUI框架 - 博客园

原文: 潜移默化学会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>
复制代码



 

后台代码

?
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
 
namespace Commands
{
     public partial class TestNewCommand : System.Windows.Window
     {
         public TestNewCommand()
         {
             InitializeComponent();
         }
         private void NewCommand( object sender, ExecutedRoutedEventArgs e)
         {           
            MessageBox.Show( "New command triggered by " + e.Source.ToString());
         }
}
}

  

效果:

通过菜单单击,或者按钮单击都会调用NewCommand这个方法,只不过事件源不一样 

 

补充:

默认 ApplicationCommands.New 会在菜单中显示 新建   Ctrl+N 这种提示,你可以通过

ApplicationCommands.New.Text = "你想要的值";修改

 

你也可以后台动态添加命令:

            CommandBinding bindingNew = new CommandBinding(ApplicationCommands.New);

            bindingNew.Executed += NewCommand;

            this.CommandBindings.Add(bindingNew);

这个就不用我讲解了吧,你懂的,呵呵。

下一章你将会掌握Command

分类: WPF
0
0
» 下一篇: 潜移默化学会WPF--Command(命令)学习(二)
posted on 2019-03-01 22:04 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10459037.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值