Bagaimana cara menempatkan karakter unicode di XAML?

104

Saya mencoba melakukan ini:

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

Untuk membuat - muncul di depan teks. Itu tidak berhasil. Apa yang harus saya lakukan di sini?

Alex Baranosky
sumber

Jawaban:

196

Karena XAML adalah format file XML, Anda dapat mencoba pelolosan karakter XML. Jadi, alih-alih menulis &\u2014, Anda bisa menulis &#x2014;.

ferdley
sumber
Terima kasih. Saya mencoba & mdash; dan \ u2014, tapi bukan itu. Berhasil.
Alex Baranosky
4
Anda sudah dekat, dalam hexa & # x20ac; dan dalam unicode desimal & # 8364; Anda akan mendapatkan dan Euro :)
pengguna347594
Ya, tapi bagaimana jika Anda menginginkan karakter UTF-32, seperti not balok pada font Symbola yang berada di atas 0x10000?
Ruud van Gaal
Terima kasih atas petunjuknya. Namun ini hanya berfungsi untuk saya ketika saya meletakkan karakter unicode saya langsung di dalam Text = "...". Saat menggunakan Binding dengan ViewModel saya, saya harus menggunakan variabel string yang berisi "\ u2014".
flocbit
9

Di xaml saya melakukannya seperti ini:

    <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>

Semoga bisa membantu!

sdd
sumber
3

Dari dokumentasi Microsoft :

File markup yang dibuat di Microsoft Visual Studio secara otomatis disimpan dalam format file Unicode UTF-8, yang berarti bahwa sebagian besar karakter khusus, seperti tanda aksen, dikodekan dengan benar. Namun, ada sekumpulan karakter khusus yang umum digunakan yang ditangani secara berbeda. Karakter khusus ini mengikuti standar XML World Wide Web Consortium (W3C) untuk pengkodean.

Artinya, Anda dapat melakukan zalgo untuk semua yang Anda pedulikan

masukkan deskripsi gambar di sini

Sedikit kode yang relevan:

<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>
Matas Vaitkevicius
sumber
3

Saya membuka halaman ini karena beberapa alasan lain, tetapi ini tidak termasuk solusi termudah dan jelas.

Inilah yang saya lakukan.

Pertahankan kelas statis dengan semua nilai Unicode.

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

Dan kemudian ikat di mana pun Anda membutuhkannya.

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

Ini juga membantu Anda dalam pemeliharaan, semua ikon akan berada di satu tempat untuk dikelola.

Imran Shaik
sumber
1

Simpan file sebagai UTF-8. Dalam Visual Studio, Anda dapat melakukannya dengan membuka "File" → "Advanced Save Options".

Akku
sumber