在代码隐藏的单个事件中访问多个 TextBoxes InputScope 属性
Accessing multiple TextBoxes InputScope property in a single event in code behind
我正在开发一个 UWP 项目,我在 UI
中有多个文本框,我已将它们附加到 x:Name
属性 中。我已将所有 Textboxes
绑定到一个 KeyButton_Down()
事件。我想实现将每个 TextBox
的 InputScope
属性 设置为 Number
。每个文本框的 XAML 都有 InputScope="Number"
集。在后面的代码中,我无法访问特定 Textbox
的 InputScope 属性。
这是我的代码
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;
}
}
我会直接使用发件人(它指向您想要访问的特定 TextBox
)。
tb.InputScope = new InputScope();
tb.InputScope.Names.Clear();
tb.InputScope.Names.Add(new InputScopeNameConverter().ConvertFrom(InputScopeNameValue.Number.ToString()));
您的 tb
是 TextBox
转换的发件人对象...
我正在开发一个 UWP 项目,我在 UI
中有多个文本框,我已将它们附加到 x:Name
属性 中。我已将所有 Textboxes
绑定到一个 KeyButton_Down()
事件。我想实现将每个 TextBox
的 InputScope
属性 设置为 Number
。每个文本框的 XAML 都有 InputScope="Number"
集。在后面的代码中,我无法访问特定 Textbox
的 InputScope 属性。
这是我的代码
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;
}
}
我会直接使用发件人(它指向您想要访问的特定 TextBox
)。
tb.InputScope = new InputScope();
tb.InputScope.Names.Clear();
tb.InputScope.Names.Add(new InputScopeNameConverter().ConvertFrom(InputScopeNameValue.Number.ToString()));
您的 tb
是 TextBox
转换的发件人对象...