Можно ли изменить размер шрифта, используемый в ContextMenu, с использованием .NET Framework 3.5 и C# для настольного приложения? Кажется, это общесистемная настройка, но я хотел бы изменить ее только в моем приложении.Изменение размера шрифта ContextMenu в C#
ответ
Если вы определяете свое собственное контекстное меню через ContextMenuStrip
в Windows Forms, используйте свойство Font.
Если вы определяете свое контекстное меню с помощью ContextMenu
в WPF, использовать различный Fontxxx свойство, такие как FontFamily и FONTSIZE.
Вы не можете изменить контекстные меню по умолчанию, которые поставляются с элементами управления; они определяются настройками системы. Поэтому, если вы хотите «Копировать/Вырезать/Вставить/и т. Д.». меню с настраиваемым размером шрифта для WinForms TextBox
, вам необходимо создать ContextMenuStrip
с соответствующим размером шрифта и присвоить его TextBox
ContextMenuStrip.
Вы можете изменить размер шрифта System.Windows.Forms.ContextMenuStrip.
Если вам нужно изменить размер шрифта контекстного меню Cut/Copy/Paste по умолчанию в текстовых полях, я думаю, вам нужно установить свойство ContextMenu в пользовательское меню, которое заменяет меню по умолчанию.
Вы упомянули .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>
Конечно, это всегда лучше пусть система определяет размер шрифта. Некоторые люди, возможно, изменили его, чтобы лучше соответствовать их физическому состоянию (например, плохой глаз) или аппаратным средствам (большой/маленький экран). Независимо от того, что вы делаете в своем коде, это будет неправильный выбор для некоторых людей, в то время как вы не дадите им никакого способа изменить его.
В WPF:
<Window.ContextMenu FontSize="36">
<!-- ... -->
</Window.ContextMenu
В WinForms:
contextMenuStrip1.Font = new System.Drawing.Font("Segoe UI", 24F);
Вы используете WinForms или WPF? – MagicKat 2008-09-18 20:28:28
Я использую WinForms. – dailymorn 2008-09-18 20:41:30