XAMLにUnicode文字を入れる方法は?


104

私はこれをやろうとしています:

<TextBlock Text="{Binding Path=Text, 
                          Converter={StaticResource stringFormatConverter}, 
                          ConverterParameter='&\u2014{0}'}" />

取得するには—テキストの前に表示されます。動作しません。ここで何をするべきですか?

回答:


196

XAMLはXMLファイル形式であるため、XML文字エスケープを試すことができます。したがって&\u2014、を書く&#x2014;代わりに、代わりに書くことができます。


ありがとうございました。試しました&mdash; と\ u2014ですが、そうではありません。出来た。
Alex Baranosky、2009

4
あなたはヘキサ&#x20ac;で近くにいました。10進数のUnicodeで&#8364; あなたが得るとユーロ:)
user347594

はい、でも、シンボラフォントの0x10000を超える音符のように、UTF-32文字が必要な場合はどうでしょうか。
Ruud van Gaal

ヒントをありがとう。ただし、これは、Unicode文字をText = "..."内に直接配置した場合にのみ機能しました。ViewModelでBindingを使用する場合、「\ u2014」を含む文字列変数を使用する必要がありました。
flocbit 2018

9

xamlでは、次のようにしました。

    <Button Grid.Column="1" Grid.RowSpan="2" Name="start" Margin="5" Click="start_Click">
        <TextBlock Name="test" FontFamily="pack://application:,,,/Y_Yoga;Component/Resources/#FontAwesome">&#xF04B;</TextBlock>
    </Button>

お役に立てれば幸いです。


3

Microsoftのドキュメントから

Microsoft Visual Studioで作成されたマークアップファイルは、Unicode UTF-8ファイル形式で自動的に保存されます。つまり、アクセント記号などのほとんどの特殊文字は正しくエンコードされます。ただし、一般的に使用される特殊な文字のセットがあり、処理方法が異なります。これらの特殊文字は、エンコード用のW3C(World Wide Web Consortium)XML標準に従います。

これが意味することは、あなたがあなたが気にするすべてのためにザルゴをすることができるということです

ここに画像の説明を入力してください

関連するコードのビット:

<Label Grid.Column="0" Grid.Row="3" FontWeight="ExtraBlack">STAGE:M&#x363;&#x36d;&#x363;&#x33e;  V&#x363;&#x365;&#x36d;&#x35b;&#x364;&#x36e;&#x365;&#x368;&#x365;&#x367;&#x33e;</Label>

3

他の理由でこのページにアクセスしましたが、これには最も簡単で明白な解決策は含まれていません。

これが私がすることです。

すべてのUnicode値を持つ静的クラスを維持します。

 public static class Icons
{
    public const string IconName = "\u2014";
}

そして、必要な場所にバインドします。

<TextBlock Text="{x:Static resources:Icons.IconName}" FontFamily="..."/>

これは、メンテナンスの手助けにもなります。すべてのアイコンを1か所で管理できます。


1

ファイルをUTF-8として保存します。Visual Studioでは、[ファイル]→[詳細な保存オプション]でこれを行うことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.