如何在XAML中放入Unicode字符?


104

我正在尝试这样做:

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

要获得一个-出现在文本的前面。没用 我应该在这里做什么?

Answers:


196

由于XAML是XML文件格式,因此您可以尝试XML字符转义。因此&\u2014,您可以写&#x2014;而不是写。


谢谢。我尝试了&mdash; 和\ u2014,但不是那样。有效。
Alex Baranosky

4
您很亲密,在hexa&#x20ac;中 并以十进制unicode&#8364; 您会得到和欧元:)
user347594

是的,但是如果您想要UTF-32字符(例如Symbola字体中的音符高于0x10000)怎么办?
Ruud van Gaal

感谢您的提示。但是,仅当我将Unicode字符直接放在Text =“ ...”内时,这才对我有用。当将绑定与ViewModel一起使用时,我必须使用包含“ \ u2014”的字符串变量。
flocbit

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)XML标准进行编码。

这意味着您可以为所有关心的事情做zalgo

在此处输入图片说明

相关的代码位:

<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中,可以通过转到“文件”→“高级保存选项”来执行此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.