如何找到与我的alt代码匹配的字符

Shi*_*ama 6 c# wpf

当我输入Alt+ 1我回来☺我想在代码中使用一些神奇的方法来获取字符串中的☺字符.

像这样的东西:

string smiley = AltCodes.GetAltCodeCharacter(1).ToString();

// Display the Smiley
richTextBoxHappy.Text = smiley;
Run Code Online (Sandbox Code Playgroud)

然后在富文本框中应该有这样的: ?

SᴇM*_*SᴇM 4

您可以使用Unicode 表(十进制)找出您的代码,然后像这样使用它:

int i = 9786;
textBoxHappy.Text = ((char)i).ToString();
Run Code Online (Sandbox Code Playgroud)

结果图像:

在此输入图像描述

编辑

当然,您可以创建自定义映射,例如某些映射Dictionary<string, int>(或您想要的任何自定义类型),并向其添加代码,例如{ "smiley", 9786 },然后使用它altCode["smiley"]

更新

或者用于enum此目的:

enum AltCodes
{
    Smiley = 9786,
    NextSmiley = 9787
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

textBoxHappy.Text = ((char)AltCodes.Smiley).ToString();
Run Code Online (Sandbox Code Playgroud)

您甚至可以创建自定义解码器,然后在 wpf 中写入您的 alt 代码(通过按住 alt 并输入数字)TextBox,单击“解码”并获取代码值,int[]例如:

private int[] DecodeCharCode(string str) =>
    DecodeCharCode(str.ToArray());


private int[] DecodeCharCode(char[] chars)
{
    int[] result = new int[chars.Length];
    for (int i = 0; i < chars.Length; i++)
    {
        result[i] = (int)chars[i];
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

和用法(点击事件或命令):

int[] decodedCodes = DecodeCharCode(decodingText.Text);
Run Code Online (Sandbox Code Playgroud)