Mouse Border Click

Border の中でクリックされた座標を Title Bar に表示します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. マウス関係のプログラムは、開発環境によって大きく変わっています。
    そこで今回は 2019/06/15 現在の最新の開発環境(Windows 10 & Visual Studio 2019 16.1.3)でテストします。
    Visual Studio を起動して [Visual C#][Windows][空白アプリ(ユニバーサル Windows)]を選びます。
    プロジェクトの作成は C# Store Application を参照して下さい。
  2. MainPage.xaml を編集して Border を設定して下さい。
    新しいバージョンではクリックの検出範囲を Border で設定できるようです。
        <Grid>
            <Border x:Name="border" Background="LightBlue" HorizontalAlignment="Left"
                Height="400" Margin="37,71,0,0" VerticalAlignment="Top" Width="600">
            </Border>
        </Grid>
    
  3. MainPage.xaml.cs を修正します。
    タイトルバーを使うので using Windows.UI.ViewManagement; を宣言して下さい。
    border.PointerPressed を設定してマウスのクリックを検出します。
    using Windows.UI.ViewManagement;
    
        public MainPage()
        {
            public MainPage()
            {
                this.InitializeComponent();
                border.PointerPressed += new PointerEventHandler(onPointerPressed);
            }
        }
    
  4. クリックを検出してタイトルバーに表示する onPointerPressed() 関数です。
    appView を取得して、appView.Title にクリックした座標を表示します。
    クリックが検出されるのは Border の中(LightBlue の領域)に限られるようです。
        private void onPointerPressed(object sender, PointerRoutedEventArgs e)
        {
            Windows.UI.Input.PointerPoint pnt = e.GetCurrentPoint(border);
            Windows.UI.ViewManagement.ApplicationView appView
                = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
            appView.Title = "X: " + pnt.Position.X + "  Y: " + pnt.Position.Y;
        }
    

超初心者のプログラム入門(C# Frame Work)