2017-06-11 4 views
1
geändert

Ich habe ein seltsames Verhalten, für das ich derzeit keine Erklärung oder eine Lösung habe und ich hoffe, dass jemand etwas darüber weiß. SoWindows Forms nach dem Laden von WPF

Ich habe eine einfache Windows Forms-Anwendung mit einer einzigen Taste, die auf den Knopf klicken lädt eine PresentationFramework assembly:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Assembly.Load("PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); 
    } 
} 

Nun, wenn ich eine benutzerdefinierte Skalierung Größe haben (zB 200%) eingestellt auf Mein Windows 10 dann auf einen Button klicken Das Formular wird skaliert, siehe folgende Bilder.

- VOR CLICK:

Form1 before button click

- NACH CLICK:

Form1 after button click

Doch dieses Verhalten tritt nicht auf, wenn ich eine der vorgesehenen Skalierung bin mit Optionen (wenn ich keine benutzerdefinierte Skalierung verwende):

Scaling options

Ich dachte zunächst das Problem zu Form.AutoScaleMode verwandt ist, aber es scheint nicht zu sein. Auch kann ich keinen geänderten Wert in Form Objekt beobachten.

Antwort

1

Ich bin nicht sicher, dass ich völlig verstehen, hier Ihr Problem, aber man könnte versuchen, das folgende Attribut auf Ihre AssemblyInfo CS-Datei hinzuzufügen (Sie es unter dem Knoten Eigenschaften im Solution Explorer in Visual Studio finden):

Damit kann die Anwendung deaktivieren, um für alle Elemente der Benutzeroberfläche die dpi-Erkennung (Dots per Inch) zu verwenden.

+0

Das hat funktioniert, vielen Dank! Leider verstehe ich immer noch nicht, warum das Problem überhaupt aufgetreten ist. Warum tritt die Änderung auf, nachdem das PresentationFramework geladen wurde? – Kipper

Verwandte Themen