在 C# 中更改 ContextMenu 字体大小

Posted

技术标签:

【中文标题】在 C# 中更改 ContextMenu 字体大小【英文标题】:Change ContextMenu Font Size in C# 【发布时间】:2010-09-10 22:11:25 【问题描述】:

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

【问题讨论】:

您使用的是 WinForms 还是 WPF? 【参考方案1】:

在 WPF 中:

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

在 WinForms 中:

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

【讨论】:

他说的是上下文菜单,而不是脱衣舞【参考方案2】:

您提到 .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>

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

【讨论】:

【参考方案3】:

如果您在 Windows 窗体中通过 ContextMenuStrip 定义自己的上下文菜单,请使用 Font 属性。

如果您在 WPF 中通过 ContextMenu 定义自己的上下文菜单,请使用各种 Fontxxx 属性,例如 FontFamilyFontSize .

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于在 C# 中更改 ContextMenu 字体大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF C# 中更改验证结果的字体大小

C#在运行时修改控制台字体、字体大小?

如何在苹果Mac上的Finder中更改字体大小?

为啥我的Excel的字体大小更改不了呢?

在我的 C# 应用程序中禁用 Windows 字体大小增加

如何在 reactjs 中动态更改字体大小和字体粗细?