在代码隐藏的单个事件中访问多个 TextBoxes InputScope 属性

Accessing multiple TextBoxes InputScope property in a single event in code behind

我正在开发一个 UWP 项目,我在 UI 中有多个文本框,我已将它们附加到 x:Name 属性 中。我已将所有 Textboxes 绑定到一个 KeyButton_Down() 事件。我想实现将每个 TextBoxInputScope 属性 设置为 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()));

您的 tbTextBox 转换的发件人对象...