私はUI
に複数のテキストボックスがあるUWPプロジェクトに取り組んでいます。x:Name
プロパティが添付されています。私はすべてTextboxes
を単一のKeyButton_Down()
イベントにバインドしました。私はのInputScope
プロパティをNumber
と設定して実装したいと思います。すべてのテキストボックスのXAMLにはInputScope="Number"
が設定されています。コードの背後には、特定のTextbox
のInputScopeプロパティにアクセスすることができません。 は、ここで私は(それはあなたがアクセス権を持っていると、特定の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
キャスト送信元のオブジェクトにありますか? – Laith@Laith(送信者)のテキストボックス名を使用したいと思います。tb.Name.Visibilityはありません。 – Apoorv
@Apoorv:いくつかのプロパティにアクセスしたい場合は、その名前は必要ありません。 tbはあなたの 'TextBox'キャストされた特定のオブジェクトです。プロパティを直接 'tb.Visibility'として使うことができます。私の答えに掲載されているように... – WPFGermany