2016-08-18 6 views
2

私は最初のユニバーサルWindowsアプリケーションを開始しています。私が欲しかったのは、メインの "Page"クラスをナビゲーションのためにサブクラス化することでした。単純な目的のために、表示された実際のページのメッセージを表示するために、RightTappedイベントフックを追加するだけでした...UWPのバグ、または何かが見つからない

私は全く新しいプロジェクトを作成しました。作成された単一のクラスのマイページ

public class MyPage : Page 
{ 
    public MyPage() 
    { 
     RightTapped += MyPage_RightTapped; 
    } 

    private async void MyPage_RightTapped(object sender, RightTappedRoutedEventArgs e) 
    { 
     var dialog = new MessageDialog("This page is " + GetType(), "What is my form"); 
     await dialog.ShowAsync(); 
    } 
} 

が続いてデフォルトのメインフォームに、私は分離コードで

<local:MyPage 

<Page 

からMainPage.xamlをを変更し、私は

public sealed partial class MainPage : Page 
を変更しました

~

public sealed partial class MainPage 

フォームを実行して、動作し、キーボードを右クリックしてメッセージが表示されます。

今問題です。メインページでは、グリッドの宣言で、それは私がこの色を削除した場合

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

...背景と定義している

<Grid> 

(実際の色のデフォルトは「#FFFFFFFF」です) RightTappedも機能しなくなりましたが、これは唯一の変更です。私は他の色の背景に入れ、RightTapped作品。

誰でもこれを説明することができますし、バックグラウンドとの関係でベアリングを持たないバックグラウンドカラーなしで失敗する理由はありますか?

答えて

3

これは文書化された動作のようです。 UIElement.RightTappedのドキュメントには、いくつかの関連するヒントを含んでいます。タッチアクションについては

をしても、タッチアクションの結果です相互作用特有または操作のイベントのために、要素は、イベントソースであるためにヒットテスト見えなければなりませんそのアクションに関連付けられているイベントを発生させます。 UIElement.VisibilityVisibleである必要があります。派生型のその他のプロパティもヒットテストの可視性に影響します。詳細はEvents and routed events overviewをご覧ください。

そしてEvents and routed events overview: Hit testing and input eventsから詳細:

ありヒットテストに影響を与えるいくつかの要因がありますが、あなたは、与えられた要素がそのIsHitTestVisibleプロパティをチェックすることにより、入力イベントを発射できるかどうかを判断することができます。このプロパティは、を返す要素がこれらの基準を満たしている場合にのみ:

  • 要素のVisibilityプロパティの値がVisibleです。
  • 要素の背景または記入プロパティの値がnullでではありません。 A ヌルBrush値は透明性とヒットテスト不可視性をもたらします。 (要素が透明にもテスト可能ヒット、代わりヌルTransparentブラシを使用する。ために)

GridBackground propertyなしグリッドを作る、ヌルデフォルト(Panelから継承) a 背景 XAML属性がヒットテストで見えない。

関連する問題