2017-06-11 3 views
1

私は現在、説明や解決策がない奇妙な動作を経験しており、誰かがこれについて何かを知りたいと思っています。WPFを読み込んだ後にサイズ変更されたWindowsフォーム

だから私は、単純なWindowsは、ボタンのクリックでPresentationFrameworkアセンブリをロードする単一のボタン、とFormsアプリケーションを持っている:

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"); 
    } 
} 

今、私はカスタムスケーリングサイズ(例えば200%)をオンに設定していたときに私のWindows 10ボタンをクリックすると、フォームがサイズ変更されます。次の画像を参照してください。

- クリックする前に: -

Form1 before button click

をクリックした後:私は提供スケーリングのいずれかを使用していたときに

Form1 after button click

しかし、この現象は発生しません。オプション(カスタムスケーリングを使用しない場合):

Scaling options

は、私が最初に問題がForm.AutoScaleModeに関連していると思ったが、していないようです。また、私はFormオブジェクトの変更された値を観察することができません。

答えて

1

ここで問題を完全に理解しているかどうかはわかりませんが、AssemblyInfo .csファイルに次の属性を追加してみてください(Visual Studioのソリューションエクスプローラの[プロパティ]ノードにあります)。

[assembly: System.Windows.Media.DisableDpiAwareness] 

これにより、すべてのユーザーインターフェイス要素に対してドットごとの認識(dpi)を無効にすることができます。

+0

これはうまくいって、多くの感謝!残念ながら私はまだ問題が最初に発生した理由を理解できませんが、なぜPresentationFrameworkがロードされた後に変更が行われるのですか? – Kipper

関連する問題