2008-09-18 3 views
4

Можно ли изменить размер шрифта, используемый в ContextMenu, с использованием .NET Framework 3.5 и C# для настольного приложения? Кажется, это общесистемная настройка, но я хотел бы изменить ее только в моем приложении.Изменение размера шрифта ContextMenu в C#

+0

Вы используете WinForms или WPF? – MagicKat 2008-09-18 20:28:28

+0

Я использую WinForms. – dailymorn 2008-09-18 20:41:30

ответ

6

Если вы определяете свое собственное контекстное меню через ContextMenuStrip в Windows Forms, используйте свойство Font.

Если вы определяете свое контекстное меню с помощью ContextMenu в WPF, использовать различный Fontxxx свойство, такие как FontFamily и FONTSIZE.

Вы не можете изменить контекстные меню по умолчанию, которые поставляются с элементами управления; они определяются настройками системы. Поэтому, если вы хотите «Копировать/Вырезать/Вставить/и т. Д.». меню с настраиваемым размером шрифта для WinForms TextBox, вам необходимо создать ContextMenuStrip с соответствующим размером шрифта и присвоить его TextBoxContextMenuStrip.

1

Вы можете изменить размер шрифта System.Windows.Forms.ContextMenuStrip.

Если вам нужно изменить размер шрифта контекстного меню Cut/Copy/Paste по умолчанию в текстовых полях, я думаю, вам нужно установить свойство 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);