Windows 10: Unvollständige Anzeige der Zeichen einer Schriftart

Windows 10: Unvollständige Anzeige der Zeichen einer Schriftart
  • standardmäßig kommt windows 10 mit demSegoe-UI-EmojiSchriftart
  • Diese Schriftart ist die einzige Standardschriftart, die über die folgenden 4 Unicode-Zeichen verfügt:

Antwort1

Moderne UI-Elemente funktionieren nicht auf die gleiche Weise wie Legacy-Elemente. Der Ausführen-Dialog und der Notizblock sind beides alte Legacy-Elemente, die nicht mit dem Rest des Betriebssystems aktualisiert werden. Die Suchleiste ist ein modernes Betriebssystemelement, daher sollte dies das Verhalten aller neueren Elemente des Betriebssystems sein. Die Schriftartenfamilie Segoe wurde für moderne UIs entwickelt und wird für verschiedene Textanzeigefunktionen verwendet. Allerdings ist die Microsoft-Entwicklung nicht gerade für Konsistenz bekannt. Sie finden möglicherweise unterschiedliche Elemente, die von unterschiedlichen Teams entwickelt wurden und unterschiedliche Verhaltensweisen aufweisen.

Weitere Informationen zum unterschiedlichen Umgang mit Schriftarten in „modernen“ Windows 10-Anwendungen finden Sie in diesem Artikel:https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/typography-in-wpf

WPF bietet erweiterte Schriftartunterstützung durch die folgenden Funktionen: Unicode für den gesamten Text. Das Verhalten und die Auswahl von Schriftarten erfordern keinen Zeichensatz oder keine Codepage mehr.

Dies erklärt, wie moderne Apps Zeichen aus mehreren Schriftarten innerhalb einer Schriftfamilie anzeigen können.

Antwort2

@harrymc „Alle Software unter Windows verwendet dieselbe API, die von denselben Windows-Komponenten unterstützt wird.“

ich: * dies ist relativ zu Ihrer Definition von „API“ * sie laufen beide in .net, das selbst in winrt (Windows-Runtime) läuft * sie können jedoch trotzdem unterschiedliche Schnittstellen haben * vor diesem Hintergrund legt Wiki nahe, dass sie unterschiedlich sind: https://en.wikipedia.org/wiki/Windows_Forms * „Windows Forms basiert auf der vorhandenen Windows-API und einige Steuerelemente umschließen lediglich die darunterliegenden Windows-Komponenten.“ https://en.wikipedia.org/wiki/Windows_Presentation_Foundation * „Die Architektur von WPF umfasst sowohl verwalteten Code als auch native Codekomponenten. Die öffentlich zugängliche API ist jedoch nur über verwalteten Code verfügbar. Während der Großteil von WPF in verwaltetem Code vorliegt, ist die Kompositions-Engine, die die WPF-Anwendungen rendert, eine native Komponente.“

https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.fontfamily?view=netframework-4.8

„Der WPF-Font-Fallback-Mechanismus ersetzt frühere Win32-Font-Ersetzungstechnologien.“

https://support.microsoft.com/en-us/help/3083806/warum-wird-einige-texte-in-einigen-apps-unter-windows-mit-quadratischen-feldern-angezeigt-1

„Windows bietet weiterhin hervorragende Unterstützung für Unicode und internationalen Text und stellt sicher, dass universelle Windows-Apps auf Desktop-Geräten und jedem anderen Formfaktor eine hervorragende Textanzeige bieten können.

@HackSlash „Der Ausführen-Dialog und der Notizblock sind beides uralte Legacy-Elemente, die nicht mit dem Rest des Betriebssystems aktualisiert werden.“

ich: * stimmt nicht * allerdings wird Notepad nicht so häufig aktualisiert wie Wordpad

Notiz * ich werde diesen Beitrag bald aufräumen * ich hatte gerade noch Zeit, dies zu machen, bevor die Kopfgeldzeit abgelaufen war * @harrymc und @HackSlash haben beide grundlegende Fehler gemacht * deshalb wollte ich genauere Informationen liefern

Antwort3

Ich bin mit der akzeptierten Antwort nicht einverstanden: Alle Software unter Windows verwendet dieselbe API, die von denselben Windows-Komponenten unterstützt wird. Während ältere Software möglicherweise eine veraltete API verwendet, ist dies bei Notepad oder Wordpad nicht der Fall, die sich noch heute in der Entwicklung befinden.

Das Problem, das der Verfasser der Beschreibung mit Notepad und Wordpad hatte, hängt eher mit der Benutzeroberfläche zusammen als mit diesen Produkten. Hier ist der Beweis, bei dem die Zeichen korrekt angezeigt werden, wenn die aktuelle Schriftart als Segoe UI Emoji angegeben ist:

Bildbeschreibung hier eingeben

Gehen Sie jedoch nicht davon aus, dass das Einfügen dieser Zeichen funktioniert, wenn die aktuelle Schriftart nicht Segoe UI Emoji ist, es sei denn, eines oder mehrere davon sind zufällig in der aktuellen Schriftart enthalten.

Für Windows-Dialoge: Beim Erstellen des Dialogs wird die vom Textfeld verwendete Schriftart in der Definition des Dialogs angegeben. Die Schriftart Segoe UI Emoji ist offensichtlich als normale Textschriftart ungeeignet und würde daher für eine solche Benutzeroberfläche niemals verwendet werden.

Sie können einen Dialog nicht zwingen, eine andere Schriftart als die zu verwenden, mit der er programmiert wurde, zumindest nicht, ohne das .exeoder zu hacken .dll, das die Definition des Dialogs enthält. Sie können also nicht erwarten, dass das Einfügen von Emojis in Dialogen funktioniert.

BEARBEITEN

Obwohl der Unicode-Zeichenbereich sehr groß ist, reicht er nicht aus, um alle Zeichen aller Sprachen der Welt aufzunehmen. Deshalb sind Schriftarten wichtig, da derselbe Unicode-Codepunkt für verschiedene Zeichen in verschiedenen Schriftarten verwendet werden kann.

Die Windows-Zwischenablage ist im Gegensatz zur Linux-Zwischenablage sehr umfangreich. Sie enthält nicht nur die Zeichen, sondern kann auch Informationen über die Sprache, Richtung (rechts, links), Schriftart und mehr enthalten. Die API kann verschiedene Formate festlegen und abrufen und ist außerdem intelligent genug, um beim Abrufen das gespeicherte Format in das angeforderte Format zu konvertieren.

Was Sie also erhalten, wenn Sie Sonderzeichen kopieren und einfügen, hängt von der API ab, die von den Quell- und Zielprogrammen verwendet wurde. Unten sehen Sie ein Beispiel, das Wordpad verwendet.

Hier der Ausgangstext in der Schriftart Arial:

Bildbeschreibung hier eingeben

Jetzt kopiere ich Ihr viertes Zeichen aus dem Browser und füge es an das Ende des Textes ein, und siehe da, das Wunder – die Schriftart ist jetzt Segoe UI Emoji:

Bildbeschreibung hier eingeben

Nun klicke ich auf das Wort „Arial“ und die Schriftart ist auf einmal anders:

Bildbeschreibung hier eingeben

Wir haben jetzt also Text in zwei verschiedenen Schriftarten. Das Zeichen, das wir eingefügt haben (

verwandte Informationen