2008-09-18 148 views
4

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

+0

您正在使用的WinForms或WPF? – MagicKat 2008-09-18 20:28:28

+0

我正在使用WinForms。 – dailymorn 2008-09-18 20:41:30

回答

6

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

如果您通过ContextMenu在WPF定义自己的上下文菜单中,使用的各种Fontxxx性能,如的FontFamily字号

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

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> 

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

1

在WPF:

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

在的WinForms:

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