gpt4 book ai didi

c# - 如何在 WinRT 中将 VirtualKey 转换为非美式键盘布局的字符?

转载 作者:太空狗 更新时间:2023-10-30 01:22:23 25 4
gpt4 key购买 nike

在标准 .NET 中,存在 ToAscii/ToUnicode 和 MapVirtualKey 函数来处理此功能,但似乎没有将等效函数或库引入 Metro/WinRT。如果 Metro/WinRT 中实际上没有公开等效函数或库,那么自定义文本输入框将很难在非美国国家/地区推向市场。具体示例:在我的自定义控件中,如果法语键盘用户按下 è、ù、é 或 à 键,则无法将它们转换为正确的字符。例如,è 使用 VirtualKey.Number7 的扫描码,据我所知,没有办法知道键盘布局,也没有简单的方法可以根据当前键盘布局转换该扫描码。有人知道这方面的信息吗?

最佳答案

我想这取决于您要查找的内容。如果你正在寻找一个简单的英文字母或数字,你可以简单地这样做:

private static char? ToChar(VirtualKey key, bool shift)
{
// convert virtual key to char
if (32 == (int)key)
return ' ';

VirtualKey search;

// look for simple letter
foreach (var letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
{
if (Enum.TryParse<VirtualKey>(letter.ToString(), out search) && search.Equals(key))
return (shift) ? letter : letter.ToString().ToLower()[0];
}

// look for simple number
foreach (var number in "1234567890")
{
if (Enum.TryParse<VirtualKey>("Number" + number.ToString(), out search) && search.Equals(key))
return number;
}

// not found
return null;
}

祝你好运!

关于c# - 如何在 WinRT 中将 VirtualKey 转换为非美式键盘布局的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com