是否可以使用 .NET Framework 3.5 和 C# 为桌面应用程序更改 ContextMenu 中使用的字体大小?它似乎是一个系统范围的设置,但我只想在我的应用程序中更改它。
4 回答
ContextMenuStrip
如果您通过Windows 窗体中的 a 定义自己的上下文菜单,请使用Font属性。
如果您通过 WPF 中的 a 定义自己的上下文菜单ContextMenu
,请使用各种Fontxxx属性,例如FontFamily和FontSize。
您不能更改控件附带的默认上下文菜单;这些是由系统设置决定的。因此,如果您想要“复制/剪切/粘贴/等”。具有自定义字体大小的 WinForms 菜单TextBox
,您必须创建ContextMenuStrip
具有适当字体大小的菜单并将其分配给TextBox
的ContextMenuStrip属性。
您可以更改 System.Windows.Forms.ContextMenuStrip 的字体大小。
如果您需要更改文本框上默认剪切/复制/粘贴上下文菜单的字体大小,我猜您需要将 ContextMenu 属性设置为替换默认菜单的自定义菜单。
在 WPF 中:
<Window.ContextMenu FontSize="36">
<!-- ... -->
</Window.ContextMenu
在 WinForms 中:
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>
当然,最好让系统设置决定字体大小。有些人可能已经更改它以更好地适应他们的身体状况(如视力不佳)或硬件(大/小屏幕)。无论你在代码中强加什么,对某些人来说都是错误的选择,而你却让他们无法更改它。