Масштаб для формы окна в C # - PullRequest
5 голосов
/ 30 августа 2008

Есть ли простой способ установить уровень масштабирования для формы окна в C #? В VBA было свойство масштабирования вида.

Ответы [ 3 ]

10 голосов
/ 17 ноября 2008

У меня была такая же проблема, и я решил ее таким образом в c #. Код переходит на форму загрузки

float scaleX = ((float)Screen.PrimaryScreen.WorkingArea.Width / 1024);
float scaleY = ((float)Screen.PrimaryScreen.WorkingArea.Height / 768);
SizeF aSf = new SizeF(scaleX, scaleY);
this.Scale(aSf);

Это "более-менее" весы образуют и все дети. Петли навсегда в 800х600 (?) Вы должны установить следующие свойства формы:

AutoscaleMode = Font
AutoSize = False
2 голосов
/ 14 июня 2013

Вы можете получить какое-то увеличение, назначив для формы Шрифт , все элементы управления будут соответственно увеличены, если для AutoScaleMode установлено значение Шрифт. Также настройки AutoSize на False сохранят размер формы без изменений, элементы управления вырастут до центра формы. Вам нужно правильно настроить все якоря и проверить внешний вид, так как это всего лишь «вид увеличения».

Итак, в основном вот пример конструктора:

public Form1()
{
    InitializeComponent();

    AutoSize = false;
    AutoScaleMode = AutoScaleMode.Font;
    Font = new Font("Trebuchet MS", 
        10.0f, 
        FontStyle.Regular, 
        GraphicsUnit.Point, 
        ((byte)(204))
    );
}

После показа формы назначение нового шрифта испортит все элементы управления, и этот трюк не сработает.

0 голосов
/ 30 августа 2008

Нет способа (о котором я знаю) делать то, что вы просите, с типичными WinForms.

Если вы выполняете пользовательское рисование / рисование, вы можете увеличить его, используя преобразование масштабирования, но, насколько я знаю, свойства "Масштаб" для формы не существует во всем мире .NET и родной Windows / C ++ API объединены.

Вы могли бы, вероятно, настроить что-то самостоятельно, чтобы масштабировать элементы управления с постоянным коэффициентом. И вы, вероятно, можете найти сторонние элементы управления / поверхности, которые поддерживают это. И кто знает, что возможно с WPF. Но в типичном мире WinForms нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...