Frage

Ich habe eine GUI für eine zufällige Anwendung mit WPF entwickelt. Ich habe eine Reihe von aus der Box WPF-Steuerelemente im Anwendungsfenster gelegt. Ich habe nichts besonders angefertigt, nicht Bitmaps usw.

Wenn meine Anwendung ausgeführt und mit Lupe Anwendung in Windows 7 (Win key + Plus key Zoomen, das vergrößerte GUI zeigt pixels.I ist wahrscheinlich falsch, weil ich es sonst nicht erklären kann, ist aber nicht WPF sollte liefern Vektor wie Steuer Rendering?

Vielen Dank für die in der Diskussion teilnehmen.

Bonus Lesen

War es hilfreich?

Lösung

Zurück, wenn Vista zum ersten Mal geliefert, und wenn WPF auf Version 3.0 waren, Zoomen mit dem integrierten Lupe würde tatsächlich tun vektorbasierte Skalierung.

Dies funktioniert nicht, wenn WPF 3.5 Service Pack 1 ausgeliefert. (Es funktionierte in 3,5 vor sp1.) Der Grund, es funktionierte, bevor dann ist, dass die DWM (Desktop Window Manager) - der Teil von Windows verantwortlich für die Präsentation alles, was Sie auf dem Bildschirm sehen - verwendet MILCORE.DLL sein Rendering zu tun. Version 3.0 und 3.5 von WPF auch diese gleichen Komponente zu machen verwendet - dies bedeutete, dass alle WPF Inhalt war nativen Inhalt, so zu sprechen. (In der Tat, auf Windows XP, die nicht die DWM haben, ist MILCORE.DLL etwas, dass WPF stellt auf Ihrem System zu seinem eigenen Nutzen. Aber es ist eingebaut in Vista und Windows 7) Wenn WPF MILCORE.DLL zu verwenden wurde render auf Vista, alle Auswirkungen durch die DWM angewendet wie Skalierung auch in der Art und Weise anwenden möchten Sie WPF wollen -. es tat Maßstab ohne pixelating wirklich

Leider ist dies nicht mehr der Fall. Und der Grund dafür ist, dass WPF begonnen, neue Rendering-Funktionen hinzufügen. In 3.5 SP1 wurde die neue Funktion in Frage Unterstützung für benutzerdefinierte Pixel-Shadern. Um dies zu ermöglichen, hatte Microsoft ein Update für die MIL zu lösen. (Medien Integration Layer -. Das Bit, das das eigentliche Rendering des Fall ist) Sie waren jedoch nicht in der Lage wirklich MILCORE.DLL zu aktualisieren, weil das Teil von Windows - es ist, wie alles, was Sie auf dem Bildschirm zu sehen bekommt auf dem Bildschirm zu sein. effektiv eine neue Version von MILCORE.DLL Loslassen bedeutet ein Update auf Windows Ausschieben. Der Release-Plan für Windows ist unabhängig von dem für .NET und so die einzige Möglichkeit, die WPF-Team konnte einigermaßen neue Funktionen hinzuzufügen war eine neue MIL zu versenden. (Theoretisch sie es über Windows Update getan haben könnte, aber da WPF jetzt durch eine andere Abteilung von Microsoft als Windows, diese Art der Sache gehört scheint nicht in der Praxis geschehen.)

Wie von .NET 3.5 SP1 ist die MIL in einer anderen DLL namens wpf_gfx_vXXXX.dll wo Vxxxx ist die Versionsnummer. In .NET 4.0, es ist wpf_gfx_v0400.dll.

Der Vorteil ist, dass WPF neue Rendering-Funktionen mit jeder neuen Version hinzugefügt wird, ohne sich um Windows-aktualisiert werden. Der Nachteil ist, dass WPF-Rendering ist nicht mehr so ??eng in Windows integriert, wie es kurz zurück war, als Vista ausgeliefert. Und das Ergebnis ist, wie Sie gesehen haben, dass Vergrößerungs ist nicht so viel Spaß wie früher.

Andere Tipps

Die Lupe Anwendung implementiert eigenes gezoomte Bild-Rendering, also, warum Sie Pixel sehen. WPF macht Verwendung von Vektorgrafiken, aber es ist nicht die WPF-Anwendung selbst in dieser Situation, dass das vergrößerte Bild zu machen.

Wenn Sie so etwas wie Snoop gezoomt sehen und skaliert WPF Vektorgrafiken in Aktion zu machen.

Ich nehme an, nimmt Windows 7 Lupe eine Momentaufnahme der tatsächlichen Anwendung auf dem Bildschirm UI, und dann vergrößert sie selbst (kein Sonderfall für WPF-Anwendungen zu machen). Natürlich, was es Zugang ist nur die Pixel, nicht die Vektorgrafiken, die hinter den Kulissen funktioniert.

Die Windows-7-Lupe ist Pixel basiert, aber es gibt einen Unterschied in Lupe Modus je nachdem, ob ein Aero-Thema aktiv ist oder nicht.

  • mit Areo Thema des Zoom pixelig ist.
  • ohne Areo Thema wird der Zoom geglättet (verschwommen).

Nur mit Areo Thema andere Ansichten (mit Ausnahme von "Docked") sind wählbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top