在C#中更改上下文菜单字体大小

5

在使用 .NET Framework 3.5 和 C# 开发桌面应用程序时,是否可以更改 ContextMenu 中使用的字体大小?似乎这是一个系统范围的设置,但我希望仅在我的应用程序中进行更改。


你使用的是WinForms还是WPF? - MagicKat
4个回答

8
如果您正在通过Windows Forms中的ContextMenuStrip定义自己的上下文菜单,请使用Font属性;如果您正在通过WPF中的ContextMenu定义自己的上下文菜单,请使用各种Fontxxx属性,如FontFamilyFontSize
您无法更改控件附带的默认上下文菜单;这些由系统设置确定。因此,如果您想为WinForms TextBox使用具有自定义字体大小的“复制/剪切/粘贴等”菜单,您需要创建一个具有适当字体大小的ContextMenuStrip并将其分配给TextBoxContextMenuStrip属性。

2
在WPF中:
<Window.ContextMenu FontSize="36">
    <!-- ... -->
</Window.ContextMenu

在 WinForms 中:

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

1
他在谈论上下文菜单,而不是条纹。 - nawfal

1

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

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


0

你提到了.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>

当然,让系统设置决定字体大小总是更好的选择。有些人可能会根据自己的身体状况(如视力不佳)或硬件(大/小屏幕)进行更改。无论你在代码中强制使用什么字体大小,都会对某些人造成不便,而你也没有给他们改变它的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接