是否可以使用 .NET Framework 3.5 和 C# 更改桌面应用程序的 ContextMenu 中使用的字体大小?这似乎是系统范围的设置,但我只想在我的应用程序中更改它。

有帮助吗?

解决方案

如果您通过 ContextMenuStrip 在 Windows 窗体中,使用 字体 财产。

如果您通过 ContextMenu 在 WPF 中,使用各种 字体xxx 属性如 字体系列字体大小.

您无法更改控件附带的默认上下文菜单;这些是由系统设置决定的。因此,如果您想要“复制/剪切/粘贴/等”。带有自定义字体大小的菜单 TextBox, ,你必须创建一个 ContextMenuStrip 使用适当的字体大小并将其分配给 TextBox上下文菜单条 财产。

其他提示

您可以更改 System.Windows.Forms.ContextMenuStrip 的字体大小。

如果您需要更改文本框上默认剪切/复制/粘贴上下文菜单的字体大小,我想您需要将 ContextMenu 属性设置为替换默认菜单的自定义菜单。

在 WPF 中:

<Window.ContextMenu FontSize="36">
    <!-- ... -->
</Window.ContextMenu

在 WinForm 中:

contextMenuStrip1.Font = new System.Drawing.Font("Segoe UI", 24F);

您提到 .NET 3.5 - 您是用 WPF 编写的吗?如果是这样,您可以为 TextBlock.FontSize 附加属性指定字体大小

<Whatever.ContextMenu TextBlock.FontSize="12">
  <MenuItem ... /> <!-- Will get the font size from parent -->
</Whatever.ContextMenu>

或者,您可以以影响所有菜单项的样式指定它

<Style TargetType="MenuItem">
   <Setter Property="TextBlock.FontSize" Value="12" />
</Style>

当然,最好让系统设置来决定字体大小。有些人可能会更改它以更好地适应他们的身体状况(例如视力不佳)或硬件(大/小屏幕)。无论你在代码中强加什么,对于某些人来说都是错误的选择,而你却没有给他们提供改变它的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top