Class MainWindow
  Sub New()
    ' Llamada necesaria para el diseñador.
    InitializeComponent()

    'Dim cb As New CommandBinding(RCAbrir, AddressOf ExecutedRCAbrir, AddressOf CanExecuteRCAbrir)
    'Me.CommandBindings.Add(cb)

    'Dim kb As New KeyBinding(RCAbrir, Key.A, ModifierKeys.Control)
    'Me.InputBindings.Add(kb)

    'Dim kb As New KeyBinding(RCAbrir, New KeyGesture(Key.A, ModifierKeys.Control))
    'Me.InputBindings.Add(kb)

    'Dim cb As New CommandBinding(ApplicationCommands.Close, AddressOf ArchivoSalir_Click)
    'Me.CommandBindings.Add(cb)
    'Dim mbArchivoSalir As New MouseBinding(ApplicationCommands.Close, New MouseGesture(MouseAction.MiddleClick, ModifierKeys.Control))
    'Me.InputBindings.Add(mbArchivoSalir)

    'Dim cb As New CommandBinding(ApplicationCommands.Close, AddressOf ArchivoSalir_Click)
    'Me.CommandBindings.Add(cb)
    'Dim kbArchivoSalir As New KeyBinding(ApplicationCommands.Close, New KeyGesture(Key.S, ModifierKeys.Control))
    'Me.InputBindings.Add(kbArchivoSalir)
  End Sub

#Region "Órdenes enrutadas"

  Public Shared RCSalir As New RoutedUICommand()
  Public Shared RCAbrir As New RoutedUICommand()

  Private Sub ExecutedRCAbrir(sender As Object, e As ExecutedRoutedEventArgs)
    ' Implemente aquí la lógica de la orden RCAbrir
    MessageBox.Show("Orden Archivo > Abrir... personalizada ejecutada")
  End Sub

  Private Sub CanExecuteRCAbrir(sender As Object, e As CanExecuteRoutedEventArgs)
    ' Retorna True sólo si el destino de la orden es un control
    Dim destino As Control = TryCast(e.Source, Control)

    If destino IsNot Nothing Then
      e.CanExecute = True
    Else
      e.CanExecute = False
    End If
  End Sub

#End Region

#Region "Controladores de eventos"

  Private Sub ArchivoSalir_Click(sender As Object, e As RoutedEventArgs)
    ' Cerrar la ventana principal
    Close()
  End Sub

  Private Sub ArchivoAbrir_Click(sender As Object, e As RoutedEventArgs)
    System.Diagnostics.Debug.WriteLine("Archivo > Abrir...")
    MessageBox.Show("Archivo > Abrir")
  End Sub

  Private Sub ArchivoGuardarMismoNombre_Click(sender As Object, e As RoutedEventArgs)
    System.Diagnostics.Debug.WriteLine("Archivo > Guardar > Mismo nombre")
  End Sub

  Private Sub ArchivoGuardarOtroNombre_Click(sender As Object, e As RoutedEventArgs)
    System.Diagnostics.Debug.WriteLine("Archivo > Guardar > Otro nombre")
  End Sub

  Private Sub AyudaAcercaDe_Click(sender As Object, e As RoutedEventArgs)
    System.Diagnostics.Debug.WriteLine("Ayuda > Acerca de...")
  End Sub

#End Region
End Class
