Я хочу запустить свое приложение на 96dpi , независимо от того, какой размер dpi для Windows установлен. Это возможно?
' Редактировать '
Я обнаружил, что использование метода Scale () и изменение размера шрифта почти сработают.
public class MyForm : Form
{
private static bool ScaleDetected = false;
const float DPI = 80F;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (!ScaleDetected)
{
Graphics g = e.Graphics;
float factorX = DPI / g.DpiX;
float factorY = DPI / g.DpiY;
SizeF newSize = new SizeF(factorX, factorY);
AutoScaleDimensions = newSize;
AutoScaleMode = AutoScaleMode.Dpi;
Scale(newSize);
Font = new Font(Font.FontFamily, Font.Size * factorX);
ScaleDetected = true;
}
}
}
альтернативный текст http://i48.tinypic.com/2vmhf2b.png
Однако при использовании этого «трюка» в приложении MDI с использованием элементов управления Janus размер основной формы изменяется, но для некоторых других форм масштабирование + измененный шрифт не применяются.