gpt4 book ai didi

wpf - 如何自定义默认上下文菜单

转载 作者:行者123 更新时间:2023-12-04 22:17:30 25 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我想限制所有文本框的剪切、复制和粘贴。一种方法是设置 ContextMenu ="{x:Null}"

但是通过这样做,我将放弃我不想放弃的拼写检查建议。此外,在我的应用程序中,我有 1000 个文本框,因此我想以更优化的方式执行此操作。

任何建议将不胜感激。

最佳答案

如果你只需要与拼写检查相关的菜单项,你可以引用这篇MSDN文章:
How to: Use Spell Checking with a Context Menu .

如果您想将自定义上下文菜单应用于多个(但不是全部)文本框:

  <Window.Resources>
<ContextMenu x:Key="MyCustomContextMenu">
<MenuItem Header="Ignore All" Command="EditingCommands.IgnoreSpellingError" />
</ContextMenu>
</Window.Resources>
<Grid>
<TextBox Height="23" Name="textBox1" Width="120" SpellCheck.IsEnabled="True"
ContextMenu="{StaticResource MyCustomContextMenu}" />
</Grid>

如果您想将自定义上下文菜单应用于所有 文本框:

  <Window.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem
Header="Ignore All"
Command="EditingCommands.IgnoreSpellingError" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<TextBox Height="23" Name="textBox1" Width="120" SpellCheck.IsEnabled="True" />
</Grid>


注意:

  1. 您可以将上下文菜单资源移动到应用程序级别而不是窗口级别。
  2. MSDN 文章提到通过 C# 代码而不是 XAML 获取菜单项。我可以轻松地将“忽略所有”命令移植到 XAML(上面的代码片段),但是对于拼写建议,您将不得不进行一些研发工作。

关于wpf - 如何自定义默认上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14750019/

25 4 0