WPF使用多命令源

new命令的这个MenuItem对象没有设置Header属性,这是因为MenuItem会从命令中提取文本.虽然该特性带来的便利性看起来不大,但如果计划使用不同语言本地话应用程序,这一特性就很重要了,在这种情况下,只需要在一个地方修改文本即可,这比在整个窗口进行跟踪要容易的多.

 

MenuItem类还有一项功能,能自动提取Command.InputBindings集合中的第一个快捷键

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.CommandBindings>
        <CommandBinding Command="ApplicationCommands.New" Executed="NewCommand_Executed"></CommandBinding>
    </Window.CommandBindings>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Menu>
            <MenuItem Header="File">
                <MenuItem Command="New"></MenuItem>
            </MenuItem>
        </Menu>
        <Button Grid.Row="1" Command="ApplicationCommands.New">new</Button>
    </Grid>
</Window>