Як поставити символ Unicode в XAML?


104

Я намагаюся це зробити:

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

To get a - з’явитися перед текстом. Це не працює. Що мені тут робити?

Відповіді:


196

Оскільки XAML - це формат файлу XML, ви можете спробувати втечу символів XML. Тож замість того, щоб писати &\u2014, ви могли &#x2014;замість цього писати .


спасибі. Я спробував & mdash; і \ u2014, але не це. Це спрацювало.
Олексій Бараноський

4
Ви були поруч, у шестикутнику & # x20ac; і в десятковому унікоді & # 8364; ви отримаєте і євро :)
користувач347594

Так, але що робити, якщо вам потрібен символ UTF-32, як музичні ноти шрифту Symbola, які вище 0x10000?
Рууд ван Гаал

Дякую за підказку. Однак це спрацювало для мене лише тоді, коли я поставив свій символ unicode безпосередньо всередині Text = "...". Під час використання прив'язки зі своїм ViewModel мені довелося використовувати змінну рядка, що містить "\ u2014".
флотбіт

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, а це означає, що більшість спеціальних символів, наприклад знаки наголосу, закодовані правильно. Однак існує набір загальновживаних спеціальних символів, які обробляються по-різному. Ці спеціальні символи відповідають стандарту XML Всесвітнього веб-консорціуму (W3C).

Це означає, що ви можете робити залго за все, що вам цікаво

введіть тут опис зображення

Біт коду, відповідний:

<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

Збережіть файл як UTF-8. У Visual Studio це можна зробити, перейшовши "Файл" → "Додаткові параметри збереження".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.