私のWPFアプリケーションは、一部のUnicode文字を他のものに置き換えているようです。この単純な例ではWPFでの不一致のUnicode文字の置換
:
:私はゴシックにフォントを切り替えた場合、私はこれを取得しながら:
<Window x:Class="WPFUnicodeFail.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFUnicodeFail"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525" FontFamily="Segoe UI" FontSize="40">
<StackPanel Orientation="Horizontal">
<Label>◀</Label>
<Label>◀</Label>
<Label>◄</Label>
<Label>◄</Label>
<Label>▲</Label>
</StackPanel>
私はこの結果を得ます
最初の2つのラベルはBLACK LEFT-POINTING TRIANGLE (U+25C0) ◀で、次の2つのラベルはBLACK LEFT-POINTING POINTER (U+25C4) ◄である必要があります。 TRIANGLEは正三角形になっていますが、POINTERは平らになっています。 Segoe UIでは、TRIANGLEはPOINTERに透過的に置き換えられます。 Arialでは、さらに悪いことに、彼らは切り替わります。
ソースコード内の文字自体と&#x
コードの両方を使用すると、上記の画像と同じ結果になります。 Wordの2016年に
なぜこのようなことが起こりますか?異なるフォントで一貫した結果を得るにはどうすればよいですか?または、少なくとも、Segoe UIとそれをPOINTERに変更するような他のフォントでTRIANGLEを取得するにはどうすればよいですか?