gpt4 book ai didi

wpf - WPF:如何设置或禁用文本框的默认ContextMenu

转载 作者:行者123 更新时间:2023-12-03 09:03:07 30 4
gpt4 key购买 nike

显然,当用户在我们的WPF应用程序中单击鼠标右键,并且使用Windows Classic主题时,TextBox的默认ContextMenu(包含Copy,Cut和Paste)具有黑色背景。

我知道这很好用:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<TextBox ContextMenu="{x:Null}"/>

</Page>

但这不起作用:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Page.Resources>

<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}">
<Setter Property="ContextMenu" Value="{x:Null}"/>
</Style>
</Page.Resources>

<TextBox/>
</Page>

有谁知道如何为WPF中的所有TextBox设置样式或禁用默认的ContextMenu?

最佳答案

要为所有TextBox设置ContextMenu的样式,我将执行以下操作:

首先,在资源部分中,添加一个ContextMenu,您打算将其用作文本框中的标准ContextMenu。例如

<ContextMenu x:Key="TextBoxContextMenu" Background="White">
<MenuItem Command="ApplicationCommands.Copy" />
<MenuItem Command="ApplicationCommands.Cut" />
<MenuItem Command="ApplicationCommands.Paste" />
</ContextMenu>

其次,为您的TextBoxes创建一种样式,该样式使用上下文菜单资源:
<Style TargetType="{x:Type TextBox}">
<Setter Property="ContextMenu" Value="{StaticResource TextBoxContextMenu}" />
</Style>

最后,照常使用文本框:
<TextBox />

相反,如果您只想将此上下文菜单仅应用于某些文本框,则不要创建上面的样式,而是将以下内容添加到TextBox标记中:
<TextBox ContextMenu="{StaticResource TextBoxContextMenu}" />

希望这可以帮助!

关于wpf - WPF:如何设置或禁用文本框的默认ContextMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9632/

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