c# - 如何找到与我的替代代码匹配的字符

标签 c# wpf

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

像这样:

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

// Display the Smiley
richTextBoxHappy.Text = smiley;

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

最佳答案

您可以使用 Unicode Table (Decimal)找出您的代码,然后像这样使用它,例如:

int i = 9786;
textBoxHappy.Text = ((char)i).ToString();

结果图片:

enter image description here

编辑

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

更新

或使用 enum为此:

enum AltCodes
{
    Smiley = 9786,
    NextSmiley = 9787
}

并像这样使用它:

textBoxHappy.Text = ((char)AltCodes.Smiley).ToString();

您甚至可以创建自定义解码器,然后在 wpf TextBox 中编写您的替代代码(通过按住 alt 并键入数字) , 单击“解码” 并将您的代码值设为 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;
}

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

int[] decodedCodes = DecodeCharCode(decodingText.Text);

关于c# - 如何找到与我的替代代码匹配的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50348817/

相关文章:

wpf - 指定 Name 或 x 时的开销 :Name attribute for WPF elements

wpf - DataGrid 项的静默更新

wpf - 将 IsEnabled 的约定添加到 Caliburn.Micro

C# SQL Server 比较日期和字符串

c# - 将名称/值对反序列化为对象

c# - 如何在将生产代码与测试代码分开的 Visual Studio 中执行 TDD

c# - MVVM - 为 ModelView 实现 'IsDirty' 功能以保存数据

c# - 将 WPF 项目从 3.5 迁移到 4.0 后,什么可能导致性能下降?

c# - Entity Framework 更改 Id 类型

c# - 在显示特定产品时,电子商务网站更可取的是什么?