Commandes intégrées de la WPF

je cherche une liste complète des commandes WPF intégrées.

La liste des meilleurs que j'ai trouvé pour l'instant est ici, mais il ne Liste pas toutes les commandes.

Quelque chose d'intéressant à avoir des détails serait:

  • Contrôles/composants avec le soutien de l'commandes (par exemple, zone de texte supporte les commandes d'édition telles que Paste, Copy, Cut, Redo et Undo);

  • les gestes des clés par défaut et le texte de L'interface utilisateur (peuvent être extrait de MSDN Library).

28
demandé sur jpbochi 2009-10-16 00:20:09

3 réponses

Il est facile d'afficher une liste complète de toutes les commandes dans tous les assemblys chargés:

  public string[] GetAllCommands()
  {
    return (
      from assembly in AppDomain.CurrentDomain.GetAssemblies()
      from type in assembly.GetTypes()
      from prop in type.GetProperties()
      where
        typeof(ICommand).IsAssignableFrom(prop.PropertyType) &&
        prop.GetAccessors()[0].IsStatic
      orderby type.Name, prop.Name
      select type.Name + "." + prop.Name
    ).ToArray();
  }

Avec PresentationFramework chargé-je obtenir la liste au bas de cette réponse, qui vous le verrez est absolument complet.

si vous voulez aussi voir le type de commande (par exemple RoutedUIComand) et les gestes, vous pouvez ajouter ceci à la LINQ:

      let commandType = prop.PropertyType

      let gestures =
        typeof(UIElement).IsAssignableFrom(commandType) ?
          ((UIElement)prop.GetValue(null)).InputGestures :
        null

Puis sélectionnez votre pourrait être quelque chose comme ceci:

      select type.Name + "." + prop.Name + " " + commandType.Name + " " + gestures

recherche programmatique les contrôles font quelque chose avec une commande donnée est également possible. Fondamentalement quelque chose comme ceci devrait fonctionner (pas essayé, mais cela vous donnera l'idée):

var allCommands = (
  from assembly in AppDomain.CurrentDomain.GetAssemblies()
  from type in assembly.GetTypes()
  from prop in type.GetProperties()
  where
    typeof(ICommand).IsAssignableFrom(prop.PropertyType) &&
    prop.GetAccessors()[0].IsStatic
  orderby type.Name, prop.Name
  select new
  {
    typeName = type.Name,
    propName = prop.Name,
    displayAs = type.Name + "." + prop.Name,
  }
).ToArray();

var classesReferencingCommand = (
  from assembly in AppDomain.CurrentDomain.GetAssemblies()
  from type in assembly.GetTypes()
  from method in type.GetMethods()
  let methodBodyString = ConvertILToString(method.MethodBody.GetILAsByteArray())
  let info = new
  {
    typeName = type.FullName,
    referencedCommands =
      from cmd in allCommands
      where
        methodBodyString.Contains(cmd.typeName) &&
        methodBodyString.Contains(cmd.propName)
      select cmd
  }
  where info.commands.Any()
  select info
).ToArray();

où ConvertILToString serait probablement quelque chose comme ceci:

static string ConvertILToString(byte[] bytes)
{
  return new string(bytes.Where(b => b!=0).Select(b => (char)b).ToArray());
}

les résultats peuvent être utilisés comme vous le souhaitez, par exemple ils peuvent être affichés en utilisant un ItemsControl:

<ItemsControl Source="{Binding classesReferencingCommand}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <StackPanel>
        <TextBox Text="{Binding typeName}" FontWeight="Bold">
        <ItemsControl Source="{Binding referencedCommands}" Margin="10 0 0 0">
          <ItemsControl.ItemTemplate>
            <DataTemplate>
                <TextBox Text="{Binding displayAs}" />
      ... close all tags ...

vous pouvez aussi afficher les données dans un format texte ou XML ou les ajouter à une base de données. Aussi remarque que cette seconde requête peut être tourné autour de avec la commande itération à l'extérieur si vous préférez une liste de commande.

le code ci-dessus vous donnera les faits précis et ne vous mentira pas, parce qu'il regarde le Net Framework lui-même.

Voici la liste promise de toutes les commandes dans Presentationfram Framework:

ApplicationCommands.CancelPrint
ApplicationCommands.Close
ApplicationCommands.ContextMenu
ApplicationCommands.Copy
ApplicationCommands.CorrectionList
ApplicationCommands.Cut
ApplicationCommands.Delete
ApplicationCommands.Find
ApplicationCommands.Help
ApplicationCommands.New
ApplicationCommands.NotACommand
ApplicationCommands.Open
ApplicationCommands.Paste
ApplicationCommands.Print
ApplicationCommands.PrintPreview
ApplicationCommands.Properties
ApplicationCommands.Redo
ApplicationCommands.Replace
ApplicationCommands.Save
ApplicationCommands.SaveAs
ApplicationCommands.SelectAll
ApplicationCommands.Stop
ApplicationCommands.Undo
ComponentCommands.ExtendSelectionDown
ComponentCommands.ExtendSelectionLeft
ComponentCommands.ExtendSelectionRight
ComponentCommands.ExtendSelectionUp
ComponentCommands.MoveDown
ComponentCommands.MoveFocusBack
ComponentCommands.MoveFocusDown
ComponentCommands.MoveFocusForward
ComponentCommands.MoveFocusPageDown
ComponentCommands.MoveFocusPageUp
ComponentCommands.MoveFocusUp
ComponentCommands.MoveLeft
ComponentCommands.MoveRight
ComponentCommands.MoveToEnd
ComponentCommands.MoveToHome
ComponentCommands.MoveToPageDown
ComponentCommands.MoveToPageUp
ComponentCommands.MoveUp
ComponentCommands.ScrollByLine
ComponentCommands.ScrollPageDown
ComponentCommands.ScrollPageLeft
ComponentCommands.ScrollPageRight
ComponentCommands.ScrollPageUp
ComponentCommands.SelectToEnd
ComponentCommands.SelectToHome
ComponentCommands.SelectToPageDown
ComponentCommands.SelectToPageUp
DocumentViewer.FitToHeightCommand
DocumentViewer.FitToMaxPagesAcrossCommand
DocumentViewer.FitToWidthCommand
DocumentViewer.ViewThumbnailsCommand
EditingCommands.AlignCenter
EditingCommands.AlignJustify
EditingCommands.AlignLeft
EditingCommands.AlignRight
EditingCommands.Backspace
EditingCommands.CorrectSpellingError
EditingCommands.DecreaseFontSize
EditingCommands.DecreaseIndentation
EditingCommands.Delete
EditingCommands.DeleteNextWord
EditingCommands.DeletePreviousWord
EditingCommands.EnterLineBreak
EditingCommands.EnterParagraphBreak
EditingCommands.IgnoreSpellingError
EditingCommands.IncreaseFontSize
EditingCommands.IncreaseIndentation
EditingCommands.MoveDownByLine
EditingCommands.MoveDownByPage
EditingCommands.MoveDownByParagraph
EditingCommands.MoveLeftByCharacter
EditingCommands.MoveLeftByWord
EditingCommands.MoveRightByCharacter
EditingCommands.MoveRightByWord
EditingCommands.MoveToDocumentEnd
EditingCommands.MoveToDocumentStart
EditingCommands.MoveToLineEnd
EditingCommands.MoveToLineStart
EditingCommands.MoveUpByLine
EditingCommands.MoveUpByPage
EditingCommands.MoveUpByParagraph
EditingCommands.SelectDownByLine
EditingCommands.SelectDownByPage
EditingCommands.SelectDownByParagraph
EditingCommands.SelectLeftByCharacter
EditingCommands.SelectLeftByWord
EditingCommands.SelectRightByCharacter
EditingCommands.SelectRightByWord
EditingCommands.SelectToDocumentEnd
EditingCommands.SelectToDocumentStart
EditingCommands.SelectToLineEnd
EditingCommands.SelectToLineStart
EditingCommands.SelectUpByLine
EditingCommands.SelectUpByPage
EditingCommands.SelectUpByParagraph
EditingCommands.TabBackward
EditingCommands.TabForward
EditingCommands.ToggleBold
EditingCommands.ToggleBullets
EditingCommands.ToggleInsert
EditingCommands.ToggleItalic
EditingCommands.ToggleNumbering
EditingCommands.ToggleSubscript
EditingCommands.ToggleSuperscript
EditingCommands.ToggleUnderline
MediaCommands.BoostBass
MediaCommands.ChannelDown
MediaCommands.ChannelUp
MediaCommands.DecreaseBass
MediaCommands.DecreaseMicrophoneVolume
MediaCommands.DecreaseTreble
MediaCommands.DecreaseVolume
MediaCommands.FastForward
MediaCommands.IncreaseBass
MediaCommands.IncreaseMicrophoneVolume
MediaCommands.IncreaseTreble
MediaCommands.IncreaseVolume
MediaCommands.MuteMicrophoneVolume
MediaCommands.MuteVolume
MediaCommands.NextTrack
MediaCommands.Pause
MediaCommands.Play
MediaCommands.PreviousTrack
MediaCommands.Record
MediaCommands.Rewind
MediaCommands.Select
MediaCommands.Stop
MediaCommands.ToggleMicrophoneOnOff
MediaCommands.TogglePlayPause
NavigationCommands.BrowseBack
NavigationCommands.BrowseForward
NavigationCommands.BrowseHome
NavigationCommands.BrowseStop
NavigationCommands.DecreaseZoom
NavigationCommands.Favorites
NavigationCommands.FirstPage
NavigationCommands.GoToPage
NavigationCommands.IncreaseZoom
NavigationCommands.LastPage
NavigationCommands.NavigateJournal
NavigationCommands.NextPage
NavigationCommands.PreviousPage
NavigationCommands.Refresh
NavigationCommands.Search
NavigationCommands.Zoom
Slider.DecreaseLarge
Slider.DecreaseSmall
Slider.IncreaseLarge
Slider.IncreaseSmall
Slider.MaximizeValue
Slider.MinimizeValue

Cette liste est complète.

S'il y a des gestes supplémentaires dans les thèmes, ils peuvent facilement être extraits en chargeant le thème de dictionnaire de ressources et en faisant quelques LINQ. Les requêtes sont triviales: il suffit de rechercher <InputGesture>. mise à Jour: Je ne pense pas qu'il y ait de gestes dans les thèmes, puisque les gestes par défaut sont chargés à partir des ressources. Donc cette partie ne sera probablement pas nécessaire.

82
répondu Ray Burns 2010-01-21 22:09:22

découvrez le ApplicationCommands, ComponentCommands et NavigationCommands classes. Ces classes contiennent toutes des propriétés statiques représentant diverses commandes routées standard que vous pouvez utiliser dans vos propres applications et interagir avec des commandes intrinsèques dans le cadre.

6
répondu Drew Marsh 2009-10-15 20:32:22

consultez ce lien http://en.csharp-online.net/WPF_Concepts%E2%80%94Built-In_Commands

les commandes intégrées de la WPF sont exposées en tant que propriétés statiques de cinq classes différentes:

    * ApplicationCommands—Close, Copy, Cut, Delete, Find, Help, New, Open, Paste, Print, PrintPreview, Properties, Redo, Replace, Save, SaveAs, SelectAll, Stop, Undo, and more 

    * ComponentCommands—MoveDown, MoveLeft, MoveRight, MoveUp, ScrollByLine, ScrollPageDown, ScrollPageLeft, ScrollPageRight, ScrollPageUp, SelectToEnd, SelectToHome, SelectToPageDown, SelectToPageUp, and more 

    * MediaCommands—ChannelDown, ChannelUp, DecreaseVolume, FastForward, IncreaseVolume, MuteVolume, NextTrack, Pause, Play, PreviousTrack, Record, Rewind, Select, Stop, and more 

    * NavigationCommands—BrowseBack, BrowseForward, BrowseHome, BrowseStop, Favorites, FirstPage, GoToPage, LastPage, NextPage, PreviousPage, Refresh, Search, Zoom, and more 

    * EditingCommands—AlignCenter, AlignJustify, AlignLeft, AlignRight, CorrectSpellingError, DecreaseFontSize, DecreaseIndentation, EnterLineBreak, EnterParagraphBreak, IgnoreSpellingError, IncreaseFontSize, IncreaseIndentation, MoveDownByLine, MoveDownByPage, MoveDownByParagraph, MoveLeftByCharacter, MoveLeftByWord, MoveRightByCharacter, MoveRightByWord, and more
1
répondu Elangovan 2009-10-16 08:59:15