this postで、CodeNakedはアプリケーションのTextFormattingModePropertyの変更方法について説明します。これは、私の問題(下記参照)を.Net 4で完全に解決します。しかし、私の制作アプリケーションは、そのプロパティをまったく持っていない.Net 3.5にあります。どのように.NET 3.5で同じことを達成するのですか?混合WinFormsおよびWPFアプリケーションの.Net 3.5におけるDPIスケーリング
私の根本的な問題:
私は特定の画面上のいくつかのWPFコントロールを持っている.NET 3.5に基づいて、WinFormsのアプリケーションを持っています。 Windows DPIの設定が150%(120%ではなく)に設定されている場合、スケーリングは期待通りに行われます。ただし、WPFコントロールが作成されるとすぐに、スケーリングはすべてのウィンドウで100%に戻されます。スケーリングは変わらないようにしたいと思います。
デモを作成するためにtest applicationを作成しました。デフォルトでは、wpfコントロールで別のwinformを開くボタンを持つwinformが開きます。変更しないままにして、2番目のフォームを開くと、スケーリングが100%に戻ります。ただし、Form1.vbの行11のコメントが解除されると、2番目のフォームが開かれたときにスケーリングが正しく発生し続けます。
Dim newApp As New App() 'Uncomment to fix automatic scaling
クラスのApp:あなたが直接あなたのアプリケーションを定義する必要が
Imports System.Windows
Imports System.Windows.Media
Partial Public Class App
Inherits Application
Public Sub App()
TextOptions.TextFormattingModeProperty.OverrideMetadata(GetType(Window), New FrameworkPropertyMetadata(TextFormattingMode.Display, FrameworkPropertyMetadataOptions.AffectsMeasure Or FrameworkPropertyMetadataOptions.AffectsRender Or FrameworkPropertyMetadataOptions.Inherits))
End Sub
End Class
ですが、この問題の回答が受け入れられていません。 –