我需要使用文本更改功能,因为我还需要允许通过语音和墨水手写输入
private void Year_TextChanging(TextBox sender, TextBoxTextChangingEventArgs args)
{
//after text changing check every character to see if it's an int.
for (int i = 0; i < sender.Text.Length; i++)
{
if(Char.IsNumber(sender.Text[i]))
{
return;
}
else if (!Char.IsNumber(sender.Text[i]))
{
sender.Text.Remove(i);
}
}
}
答案 0 :(得分:1)
首先,让我们问一个问题:如何确定一个char是否为数字? 在这种情况下,我通常更喜欢将给定的char更改为number。如果是数字,则答案在0到9之间。 那么,现在的问题是如何转换? 最简单的方法是用char'0'减去。因此,通过减去我们得到的差就是原始数。 例如,char'0'的ASCII值为48 char'5'的ASCII值为53 因为字符之间的差异使我们获得了ASCII值之间的差异,所以我们得到了数字。
因此,现在从文本框中获取char并减去每个char为'0'的char,如果其值不在0到9之间,则可以删除。
答案 1 :(得分:1)
为什么不使用UWP - Windows Community Toolkit的TextBox扩展名?它可以帮助您做出所有判断。
您只需要为您的UWP项目安装nuget软件包function setUp() {
project = document.getElementById("project");
ctx = project.getContext("2d");
width = 505;
height = 900;
mid = width / 2;
midh = height / 2;
startPx = width / 2 - 30;
startPy = height - 150;
audio = new Audio("bgm.mp3");
audio.play();
img = new Image();
img2 = new Image();
img.src = "bg.png";
img2.src = "fighterjet.png"
img.onload = function() {
ctx.shadowColor = "#ffffff";
ctx.shadowBlur = 15;
ctx.drawImage(img, 0, 0, width, height);
ctx.drawImage(img2, startPx, startPy);
}
window.addEventListener("keydown", checkKeyPress);
// Here ! And do something about that start button or the game will start over again...
gameData.interval = window.setInterval(refreshGame, 100);
document.getElementById("start").style.display = "none";
project.focus();
}
,然后在XAML页面上使用它,如下所示:
Microsoft.Toolkit.Uwp.UI
xmlns:extensions="using:Microsoft.Toolkit.Uwp.UI.Extensions"