Window Preview Key Events : Window Event « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="RoutedEvents.TunneledKeyPress"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="TunneledKeyPress" Height="400" Width="400" PreviewKeyDown="SomeKeyPressed" >
  <StackPanel>
    <Label Margin="5" BorderBrush="Black" BorderThickness="1" HorizontalContentAlignment="Stretch"
           PreviewKeyDown="SomeKeyPressed">
      <StackPanel PreviewKeyDown="SomeKeyPressed">
        <TextBlock Margin="3" HorizontalAlignment="Center" PreviewKeyDown="SomeKeyPressed">
          Image and text label
        </TextBlock>
        <Image Source="c:\image.jpg" Stretch="None" PreviewKeyDown="SomeKeyPressed"/>
        <DockPanel Margin="10" PreviewKeyDown="SomeKeyPressed"> 
          <TextBlock Margin="3" PreviewKeyDown="SomeKeyPressed">Type here:</TextBlock>
          <TextBox PreviewKeyDown="SomeKeyPressed" KeyDown="SomeKeyPressed"></TextBox>
        </DockPanel>
      </StackPanel>
    </Label>
    <ListBox Margin="5" Name="lstMessages"></ListBox>
    <CheckBox Margin="5" Name="chkHandle">Handle first event</CheckBox>
    <Button Click="cmdClear_Click" HorizontalAlignment="Right" Margin="5" Padding="3">Clear List</Button>
  </StackPanel>
</Window>

//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace RoutedEvents
{
    public partial class TunneledKeyPress : System.Windows.Window
    {
        public TunneledKeyPress()
        {
            InitializeComponent();
        }

        protected int eventCounter = 0;

        private void SomeKeyPressed(object sender, RoutedEventArgs e)
        {
            eventCounter++;
            string message = "#" + eventCounter.ToString() + ":\r\n" +
                " Sender: " + sender.ToString() + "\r\n" +
                " Source: " + e.Source + "\r\n" +
                " Original Source: " + e.OriginalSource + "\r\n" +
                " Event: " + e.RoutedEvent;
            lstMessages.Items.Add(message);
            e.Handled = (bool)chkHandle.IsChecked;
        }

        private void cmdClear_Click(object sender, RoutedEventArgs e)
        {
            eventCounter = 0;
            lstMessages.Items.Clear();
        }
    }
}
WPF Window Preview Key Events








24.71.Window Event
24.71.1.Window mouse down eventWindow mouse down event
24.71.2.Window Preview mouse down eventWindow Preview mouse down event
24.71.3.Window mouse up eventWindow mouse up event
24.71.4.Window.DragMoveWindow.DragMove
24.71.5.Window.CommandBindingsWindow.CommandBindings
24.71.6.Use Window Activated and Deactivated event to control a media fileUse Window Activated and Deactivated event to control a media file
24.71.7.Custom Element Binding WindowCustom Element Binding Window
24.71.8.ShutdownMode.OnLastWindowCloseShutdownMode.OnLastWindowClose
24.71.9.Window Loaded eventWindow Loaded event
24.71.10.Close a window with Escape key pressedClose a window with Escape key pressed
24.71.11.Window Closing and Closed eventWindow Closing and Closed event
24.71.12.Create Window and add window closing event handlerCreate Window and add window closing event handler
24.71.13.Do not handle events until Window is fully initialized.Do not handle events until Window is fully initialized.
24.71.14.Window On Mouse move eventWindow On Mouse move event
24.71.15.Window On Mouse up eventWindow On Mouse up event
24.71.16.Window Preview Key EventsWindow Preview Key Events
24.71.17.Listen to Window loaded eventListen to Window loaded event
24.71.18.Listen to window resize event
24.71.19.Retrieving the mouse position relative to controls on a WindowRetrieving the mouse position relative to controls on a Window
24.71.20.Listen to text input event for Window
24.71.21.Get input text from TextCompositionEventArgs.Text
24.71.22.Cancel window closing event