Présentation des commandes et des contrôles

La séparation de la logique et de la présentation est la philosophie de conception qui inspire le système de présentation de commandes de l’infrastructure du ruban Windows, un système basé sur un modèle de conception où les fonctionnalités et le comportement sont implémentés indépendamment des contrôles qui exposent cette fonctionnalité.

Introduction

Cet article décrit la conception du système de commande de l’infrastructure ribbon. Il décrit les concepts des commandes et des contrôles et explore comment ils fonctionnent ensemble pour fournir une expérience de commande riche avec une foule de nouvelles fonctionnalités d’interface utilisateur.

Système de commandes du ruban Windows

Dans l’infrastructure du ruban, les commandes et les contrôles sont des entités indépendantes. Une commande est une structure abstraite, sans contraintes de présentation, qui représente une tâche ou une classe de fonctionnalités spécifique. Un contrôle, en revanche, est un objet concret qui expose la fonctionnalité Command via l’interface utilisateur du ruban.

Cette distinction permet de définir des commandes qui ne contiennent pas de détails d’interface utilisateur et qui peuvent s’exécuter selon l’intention d’une action sans avoir à gérer la façon dont l’action a été appelée.

Commandes

Les contrôles sont les objets d’interface utilisateur requis pour la présentation Command. Ils sont rendus et gérés au moment de l’exécution par l’infrastructure en fonction de l’interaction utilisateur et d’un ensemble de propriétés et de comportements inhérents.

Connue sous le nom de disposition adaptative, la flexibilité gérée par l’infrastructure de l’interface utilisateur est l’une des grandes forces du ruban. Les contrôles du ruban peuvent se reconfigurer automatiquement par le biais de modèles de disposition dépendants de l’infrastructure ou définis par le développeur qui sont capables de répondre à diverses exigences de temps d’exécution, le tout sans écrire une seule ligne de code de présentation. Pour plus d’informations, consultez Personnalisation d’un ruban à l’aide de définitions de taille et de stratégies de mise à l’échelle.

Outre les avantages de la disposition adaptative, un certain nombre de contrôles de ruban complexes fournissent des solutions autonomes pour des espaces de problèmes d’interface utilisateur spécifiques. En offrant un modèle d’interaction sophistiqué, les contrôles ruban, tels que FontControl ou ColorPicker, permettent de manipuler des données en termes plus abstraits à l’aide de sacs de propriétés d’attributs de police ou de couleur réels plutôt que de différents sous-contrôles, énumérations et valeurs d’index de contrôles Windows standard.

Commandes

Faiblement couplées aux contrôles du ruban qui exposent leurs fonctionnalités, les implémentations de commandes sont le domaine de l’application hôte et prennent la forme d’écouteurs d’événements, de gestionnaires de commandes et de différentes propriétés command.

Les commandes sont déclarées dans le balisage du ruban avec un ID unique ou affectées à un ID généré par le compilateur de balisage lors de la compilation. Les commandes sont associées à des contrôles par le biais d’un nom de commande, mais, contrairement aux contrôles, leur fonctionnalité réelle est définie dans le code où elles sont liées à des gestionnaires de commandes spécifiques via l’ID de commande.

Notes

Lors de la compilation, cet ID est stocké dans un fichier d’en-tête de définition d’ID qui expose les commandes à leurs gestionnaires de commandes correspondants dans l’application hôte du ruban.

 

Chaque commande a un type de commande sous-jacent, élémenté dans l’énumération UI_COMMANDTYPE .

Expérience de commande en action

Les fonctionnalités de ce modèle de commande sont illustrées par la barre d’outils Accès rapide du ruban (QAT). Le QAT fournit aux utilisateurs finaux un moyen de définir facilement leurs propres raccourcis pour pratiquement n’importe quel contrôle dans l’interface utilisateur du ruban. Un raccourci est ajouté dynamiquement au QAT au moment de l’exécution lorsque l’utilisateur clique avec le bouton droit sur un contrôle Ruban et sélectionne Ajouter à la barre d’outils Accès rapide dans le menu contextuel.

L’image suivante montre le collage et le collage à partir de commandes, représenté par un contrôle SplitButton , dans le ruban de Windows 7 Paint.

image du bouton fractionné coller dans le ruban Microsoft Paint.

L’image suivante montre les mêmes collagesà partir de commandes, toujours représentées par un contrôle SplitButton , dans le qat du ruban de Windows 7 Paint.

image du bouton fractionné coller dans le qat de peinture microsoft.

Lorsqu’un contrôle est hébergé par le QAT, le nouveau instance du contrôle conserve toutes les fonctionnalités du contrôle d’origine sans avoir besoin d’écouteurs d’événements et de gestionnaires de commande supplémentaires pour le prendre en charge. Les deux contrôles sont liés au même gestionnaire de commandes du ruban via un identificateur de commande partagé. De cette façon, l’infrastructure traite les deux contrôles comme un seul contrôle, quel que soit l’élément appelé.

Notes

Les mêmes avantages sont réalisés lorsque les commandes sont incorporées dans un ContextPopup au moment de la conception. Dans ce cas, les gestionnaires de commandes Coller peuvent être utilisés, que le contrôle SplitButton apparaisse dans le ruban, le QAT ou le ContextPopup.

 

Présentation de l’infrastructure du ruban Windows

Création d’une application ruban

Déclaration de commandes et de contrôles avec balisage du ruban