朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら 
WPF 楕円(図形)にキーイベントを認識させる





デフォルトのままでは図形はキーイベントを受け付けません。認識するためにFocusableプロパティをTrueに設定し、そのうえでフォーカスを与えます。 フォーカスがなければキーイベントを認識しないことに注意してください。サンプルコードでは、クリックされたタイミングで図形にフォーカスを与えています。

XAML

    <window x:class="WPF_RectangleWithEvent.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        title="Window1" height="327" width="624" mouseleftbuttondown="Window_MouseLeftButtonDown" mouseleftbuttonup="Window_MouseLeftButtonUp">
        <canvas height="310" width="598" x:name="LayoutRoot">
            <ellipse focusable="True" keydown="Ellipse_KeyDown" mouseleftbuttondown="Ellipse_MouseLeftButtonDown" width="100" height="150" fill="Blue" />
            </canvas>
</window>

コード

        private void Ellipse_KeyDown(object sender, KeyEventArgs e)
        {            
            MessageBox.Show(e.Key.ToString());
        }
        private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Ellipse item = (Ellipse)sender;
            item.Focus();
        }








良いやや良い普通やや悪い悪い

投稿日時評価コメント