在C#中更改ContextMenu字体大小

时间:2008-09-18 20:26:31

标签: c# .net contextmenu font-size

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

4 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

在WPF中:

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

在WinForms中:

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

答案 3 :(得分: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>

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