WPF高级命令使用

 

在WPF中,命令是什么呢?对于程序来说,命令就是一个个任务,例如保存,复制,剪切这些操作都可以理解为一个个命令。即当我们点击一个复杂按钮时,此时就相当于发出了一个复制的命令,即告诉文本框执行一个复杂选中内容的操作,然后由文本框控件去完成复制的操作。在这里,复杂按钮就相当于一个命令发送者,而文本框就是命令的执行者。它们之间通过命令对象分割开了。如果采用事件处理机制的话,此时调用程序与处理程序就相互引用了。

另外,WPF命令除了使命令源和命令目标分割的优点外,它还具有另一个优点:使得控件的启用状态和相应的命令状态保持同步,即命令被禁用时,此时绑定命令的控件也会被禁用。

WPF命令模型的核心就在于iCommand接口了,该接口定义命令的工作原理。该接口的定义如下所示:

 public interface ICommand

          {

            // Events

            event EventHandler CanExecuteChanged;

            // Methods

            bool CanExecute(object parameter);

            void Execute(object parameter);

        }

该接口包括2个方法和一个事件,下面介绍了如何使用WPF命令来完成任务。XAML具体实现代码如下所示:

 <StackPanel>

        <Menu>

            <MenuItem Header="File">

                <!--WPF内置命令都可以采用其缩写形式-->

                <MenuItem Command="New"></MenuItem>

            </MenuItem>

        </Menu>

        <!--获得命令文本的两种方式-->

        <!--直接从静态的命令对象中提取文本-->

        <Button Margin="5" Padding="5" Command="ApplicationCommands.New" ToolTip="{x:Static ApplicationCommands.New}">New</Button>

        <!--使用数据绑定,获得正在使用的Command对象,并提取其Text属性-->

        <Button Margin="5" Padding="5" Command="ApplicationCommands.New" Content="{Binding RelativeSource={RelativeSource Self},Path=Command.Text}"/>

        <Button Margin="5" Padding="5" Visibility="Visible" Click="cmdDoCommand_Click" >DoCommand</Button>

</StackPanel>

其对应的后台代码实现如下所示:

 

  public partial class MainWindow : Window

        {

            public MainWindow()

            {

                InitializeComponent();

                 后台代码创建命令绑定

                //CommandBinding bindingNew = new CommandBinding(ApplicationCommands.New);

                //bindingNew.Executed += NewCommand;

                 将创建的命令绑定添加到窗口的CommandBindings集合中

                //this.CommandBindings.Add(bindingNew);

            }

            private void NewCommand(object sender, ExecutedRoutedEventArgs e)

            {

                MessageBox.Show("New 命令被触发了,命令源是:" + e.Source.ToString());

            }

            private void cmdDoCommand_Click(object sender, RoutedEventArgs e)

            {

                // 直接调用命令的两种方式

                ApplicationCommands.New.Execute(null, (Button)sender);

                //this.CommandBindings[0].Command.Execute(null);

            }

        }

上面程序的运行结果如下图所示:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WPF高级编程是一本针对WPF(Windows Presentation Foundation)技术的高级编程书籍,适合已经具备一定WPF基础知识的开发者深入学习、提升技能。 该书内容丰富,覆盖了WPF的大部分高级技术,如WPF的图形系统、自定义渲染、数据绑定、MVVM(Model-View-ViewModel)模式、以及WPF与Win32、DirectX等技术的结合等。此外,还讲解了一些在实际开发中常见的难点,如如何优化WPF应用程序的性能,如何处理大量数据的呈现等。 此外,该书还提供了大量的示例代码和实战案例,让读者通过实践掌握WPF高级编程的技能。本书所提供的技术和实践经验,不仅能够提高WPF应用程序的性能和稳定性,还能够打破WPF技术的局限性,创建出更加出色的用户界面和交互体验。 总之,WPF高级编程是一本非常实用的WPF技术书籍,适合已经具备一定WPF基础知识的开发者学习。通过深入学习WPF高级技术,开发者能够创造出更加出色的用户界面和交互体验,提高自己在WPF开发领域的技术水平。 ### 回答2: WPF高级编程PDF是一本涵盖了WPF技术的高级编程知识的电子书。WPF即Windows Presentation Foundation,是微软推出的图形界面开发技术,可以用于开发Windows桌面应用、Web应用和嵌入式系统等多种应用场景。WPF高级编程PDF主要围绕WPF技术的进阶应用展开,包括数据绑定、样式和模板、自定义控件、动画和图形等领域。 在数据绑定方面,WPF高级编程PDF介绍了更为高级的绑定技巧,如基于多个属性的绑定、转换器的使用和绑定事件等。在样式和模板方面,则着重讲解了使用资源字典、样式触发器的高级应用。在自定义控件方面,作者详细讲解了创建自定义控件的流程和技巧,并给出了一些常用的自定义控件示例。在动画和图形方面,WPF高级编程PDF介绍了如何使用WPF内置动画和图形支持,以及如何自定义动画和图形。 总的来说,WPF高级编程PDF提供了WPF技术的高级应用指南,适合有一定WPF编程基础的开发者阅读学习。该电子书配有丰富的代码示例和实践案例,能够帮助读者更好地理解和掌握WPF技术。 ### 回答3: WPF高级编程 pdf是一本关于Windows Presentation Foundation(WPF)技术的高级编程指南。WPF是一种基于XAML(可扩展应用程序标记语言)的用户界面框架,可用于创建 Windows 应用程序的视觉效果。这本书主要是针对已经有一定WPF编程经验的开发人员提供进一步的指导和技巧,帮助他们更深入地了解WPF的内部工作原理和最佳实践。 这本书并不是一本入门级别的教程,读者需要具备一定的编程知识和WPF基础。它包括了许多高级的主题,例如窗口管理、数据绑定、命令绑定、动画和自定义控件等。此外,书中还介绍了一些与WPF相关的话题,例如MVVM(模型-视图-视图模型)设计模式、LINQ、多线程编程等。 虽然这本书主要是面向开发人员的,但它也对培训者、设计师和其他WPF技术爱好者提供了很多价值。它解释了一些比较复杂的主题,并且提供了大量的代码示例和说明,可以帮助读者更好地理解WPF框架和技术。 总之,WPF高级编程 pdf是一本非常有价值的WPF技术书籍,适合那些已经有一定WPF编程经验的人士,想要进一步提高自己的技能和知识水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值