Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Window Preview Key Events

<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.vb Imports System Imports System.Collections.Generic Imports System.Text Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Documents Imports System.Windows.Input Imports System.Windows.Media Imports System.Windows.Media.Imaging Imports System.Windows.Shapes Namespace RoutedEvents   Public Partial Class TunneledKeyPress     Inherits System.Windows.Window     Public Sub New()       InitializeComponent()     End Sub     Protected eventCounter As Integer = 0     Private Sub SomeKeyPressed(sender As Object, e As RoutedEventArgs)       eventCounter += 1       Dim message As String = "#" & eventCounter.ToString() & ":" & vbCr & vbLf & " Sender: " & sender.ToString() & vbCr & vbLf & " Source: " & Convert.ToString(e.Source) & vbCr & vbLf & " Original Source: " & Convert.ToString(e.OriginalSource) & vbCr & vbLf & " Event: " & Convert.ToString(e.RoutedEvent)       lstMessages.Items.Add(message)       e.Handled = CBool(chkHandle.IsChecked)     End Sub     Private Sub cmdClear_Click(sender As Object, e As RoutedEventArgs)       eventCounter = 0       lstMessages.Items.Clear()     End Sub   End Class End Namespace