我正在做一个UWP项目,我在UI中有多个文本框,我已经将x:Name属性与它们附加在一起。我将所有的Textboxes绑定到一个KeyButton_Down()事件中。我希望实现将每个TextBox的TextBox属性设置为Number。每个文本框的XAML都有InputScope="Number"集。在后面的代码中,我无法访问特定Textbox的Textbox属性。这是我的密码
private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
TextBox tb = (TextBox)sender;
InputScope scope = new InputScope();
InputScopeName name = new InputScopeName();
name.NameValue = InputScopeNameValue.Number;
scope.Names.Add(name);
string textBoxName = tb.Name;
// TextBox text = new TextBox();
//this line is not working for me
// textBoxName.InputScope = scope;
var state = CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.Shift);
var newState = (state & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down;
if ((!char.IsControl(Convert.ToChar(e.Key)) && !char.IsDigit(Convert.ToChar(e.Key)) && (Convert.ToChar(e.Key) != '.') && !newState))
{
e.Handled = true;
}
}发布于 2017-04-11 12:15:42
我将直接使用发件人(它指向您希望访问的特定TextBox )。
tb.InputScope = new InputScope();
tb.InputScope.Names.Clear();
tb.InputScope.Names.Add(new InputScopeNameConverter().ConvertFrom(InputScopeNameValue.Number.ToString()));你的tb是TextBox抛出的发件人对象..。
https://stackoverflow.com/questions/43343213
复制相似问题