ゲームで奇妙な問題が発生しました。ハイスコアを取得すると、Xaml テキスト ボックスが有効になり、タップしてオンスクリーン キーボードを呼び出すことができます。しかし最近、これが壊れました。.xaml 内にテキスト ボックスを作成し、visibility.collapsed をオンにして、txtTest という名前を付けました。ゲームをロードするときに、イベントハンドラーを接続します
txtTest.PointerPressed += txtTest_PointerPressed;
txtTest.AddHandler(PointerPressedEvent, new Windows.UI.Xaml.Input.PointerEventHandler(txtTest_PointerPressed), true);
ハイスコア画面に入ると、テキストボックスが表示されますが不透明度が0になり、場所とサイズが設定されるイベントが発生します。
Thickness margin = txtTest.Margin;
margin.Left = 1350 * _game.scale.X;
margin.Top = 770 * _game.scale.Y;
margin.Bottom = 240 * _game.scale.Y;
margin.Right = 200 * _game.scale.X;
txtTest.Margin = margin;
txtTest.Width = 300 * _game.scale.X;
txtTest.Height = 70 * _game.scale.Y;
txtTest.MaxLength = 10;
txtTest.Text = string.Empty;
txtTest.Visibility = Visibility.Visible;
txtTest.Opacity = 0;
これを最初に実行したときはすべてうまくいきましたが、最近は機能しなくなりました。問題は、テキスト ボックスが作成され、すべての値が設定されているが、表示されないことです。テキストボックスには場所と Visibility.Visible があるので、描画する必要がありますが、描画しません。
これは現在、Surface Pro または Acer W500 などのネイティブ タッチ対応デバイスでのみ発生します。これを RT デバイスまたはデスクトップで実行すると問題なく動作し、マウスでクリックすることもできますが、タッチ対応デバイスを実行すると、ハンドラーが起動しなくても、テキスト ボックスが存在しないように感じられます。フォーカスを設定しても何も起こりません。
誰も手がかりを持っていますか?