gpt4 book ai didi

c# - 使用 ctrl+z 键在 WPF 中实现我们自己的 Undo 方法/功能并禁用默认的 undo 命令

转载 作者:行者123 更新时间:2023-12-03 10:32:40 27 4
gpt4 key购买 nike

如何使用 ctrl+z (ApplicationCommand.Undo) 键来实现我们自己的撤消方法,而不是使用 WPF 中的默认命令。基本上用我们自己的撤消方法替换默认命令。

例如:我想将 ctrl+z 命令绑定(bind)到我的方法: private void OnMenuItemUndo(object sender, RoutedEventArgs e) 在 xaml.cs 文件。

最佳答案

下面是一个简单的方法。它假定公开名为 YourUndoCmdICommand 类型属性的数据源对象已经绑定(bind)到 TextBox 的祖先之一的 DataContext 属性。

<TextBox IsUndoEnabled="false">
<TextBox.InputBindings>
<KeyBinding Modifiers="Ctrl" Key="Z" Command="{Binding YourUndoCmd}"/>
</TextBox.InputBindings>
</TextBox>

更新

CommandBinding 方式。

<Grid>
<Grid.CommandBindings>
<CommandBinding Executed="Undo_ExeCuted" Command="ApplicationCommands.Undo"/>
</Grid.CommandBindings>

<!--TextBox that will use your undo logic.-->
<TextBox IsUndoEnabled="False"/>

<!--TextBox that will use build-in undo logic.-->
<TextBox />
</Grid>

在你的代码隐藏中,应该有一个像下面这样的方法来处理撤销命令。

private void Undo_Executed(object sender, ExecutedRoutedEventArgs e)

关于c# - 使用 ctrl+z 键在 WPF 中实现我们自己的 Undo 方法/功能并禁用默认的 undo 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50340014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com