Objawy

Aplikacje Windows Forms, które implementują własne skalowanie logiki dla ustawień wysokiej rozdzielczości DPI mogą wystąpić nietypowe, skalowanie, jeśli te aplikacje są zdecydował się do zmiany programu Microsoft.NET Framework 4.5.2 wysokiej rozdzielczości DPI, przy użyciu następującego ustawienia pliku .config:

<appSettings> <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" /></appSettings>

Rozwiązanie

Aplikacje, które zastosować współczynnik skalowania na górze przeskalowana wartość wystąpi dodatkowych, skalowanie, gdy są one zdecydował się do ulepszenia.NET Framework 4.5.2 wysokiej rozdzielczości DPI. Aby rozwiązać ten problem, zaktualizuj skalowania logikę aplikacji, aby zastosować skalowanie na wartość domyślną ToolStrip.ImageScalingSize . Ta zmiana pozwoli uniknąć wprowadzenia dodatkowych skalowania.Na przykład aplikacje, które mają następujący kod będzie dwa razy skalować przyciski paska narzędzi:

public MyToolStrip(){ IntPtr hDC = GetDC(new HandleRef(null, IntPtr.Zero)); double xFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSX) / 96.0; double yFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSY) / 96.0; this.ImageScalingSize = new Size((int)(this.ImageScalingSize.Width * xFactor), (int)(this.ImageScalingSize.Height * yFactor)); InitializeComponent();}

Poniższy kod umożliwia skalowanie z stałą domyślny rozmiar lub rozmiar obrazu, który chcesz:

this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));

  

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.