Gestion de vue et de ses éléments

Les éléments d’interface (les contrôles) peuvent être modifiés en chageant les couleurs gérées directement – la couleur du motif (ThemeColor) et la couleur d’arrière-plan (ThemeBackground), dans le panneau Configuration d’interface, globalement, tous les contrôles à la fois, dans le panneau Éléments globaux ou localement, indépendamment par vue, dans le panneau Gestion des vues. La modification d’un n’importe quel paramètre de contrôle localement a une priorité plus haute qu’une modification globale.

Layout.Id

Le fonctionnement de la gestion des vues dépend de quelques facteurs. Le premier est d’enregistrer correctement la vue (utilisation de la méthode RegisterViews de la classe ModuleBase) et de créer un view-model approprié pour le mode design (DesignViewModel), le deuxième est de marquer les contrôles avec un attribut approprié.

Cet attribut est Layout.Id qui doit être unique dans l’ensemble de l’application POS. C’est une condition indispensable pour que le contrôle soit géré indépendamment. Si plusieurs contrôles ont le même Id, alors la modification d’une propriété entraînera la modification des autres contrôles.

Définir les valeurs par défaut des propriétés gérables

Les valeurs par défaut des contrôles peuvent être définies de plusieurs façons, en fonction des besoins.

1. Directement comme les attributs du contrôle défini dans xaml

<TextBlock Foreground="Red"/>

Il ne sera pas possible de gérer le contrôle ci-dessus, car l’attribut Layout.Id n’a pas été défini pour lui.

Cette méthode peut être également utilisée avec les Schémas de couleur et police :

<TextBlock Foreground="{DynamicResource ThemeColor}"/>

Le contrôle sera géré uniquement en modifiant le motif (la couleur de la police sera modifiée).

Pour qu’un contrôle soit gérable globalement dans la configuration globale d’interface, il faut l’enregistrer à l’aide de la méthode RegisterControl de la classe ModuleBase.

Pour qu’un contrôle soit gérable localement par vue où elle a été utilisée (gestion des vues), cette vue doit être enregistrée correctement (à l’aide de la méthode RegisterViews) et le contrôle doit avoir l’attribut Layout.Id. En cas d’utilisation de Layout.Id, il ne faut pas paramétrer les propriétés par défaut du contrôle directement sur lui. Si par exemple nous définissons la valeur par défaut de la propriété Foreground avant de définir Layout.Id, cette propriété sera ignorée. En revanche, si nous définissons la propriété Foreground après Layout.Id, elle ne sera pas gérable (sa valeur sera toujours remplacée par la valeur définie directement).

Une définition directe des attributs doit être effectuée uniquement pour les propriétés non-gérables comme celles qui sont indispensables au fonctionnement correct du contrôle (par exemple Binding).

2. Style global ou local de contrôle (en utilisant x:Key)

<core:View.Resources>
        <Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
            <Setter Property="Foreground" Value="Red"/>
            <Setter Property="Background" Value="{DynamicResource ThemeBackground}"/>
        </Style>
</core:View.Resources>
..
<TextBlock core:Layout.Id="TextBlockLayoutId" />

L’exemple ci-dessus illustre le réglage global du style de couleur de la police et de la couleur d’arrière-plan pour tous les contrôles TextBlock utilisés dans la vue <core:View> actuelle.

<core:View.Resources>
        <Style x:Key="TextBlockStyle" 
               TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
            <Setter Property="Foreground" Value="Red"/>
            <Setter Property="Background" Value="{DynamicResource ThemeBackground}"/>
        </Style>
</core:View.Resources>
…
<TextBlock Style="{StaticResource TextBlockStyle}" core:Layout.Id="TextBlockLayoutId" />

La modification ci-dessus présente comment définir à l’aide des styles uniquement le contrôle sélectionné.

3. Attribut par défaut défini dans ModerUI.xaml selon la définition <type_d_attribut x:Key=”[LayoutId].Default.[Nom_du_type]”>[valeur par défaut]</type_d_attribut>

Fichier ModernUI.xml

<SolidColorBrush x:Key="TextBlockLayoutId.Default.Foreground" Color="Red"/>

Fichier de vue

<TextBlock core:Layout.Id="TextBlockLayoutId" />

Pour que l’exemple ci-dessus fonctionne correctement, il est requis d’enregistrer les ressources ModernUI.xaml du module dans la classe enregistrant le module (voir le chapitre Nouveau module dans l’article Créer des vues). Dans le constructeur nous appelons :

LayoutService.RegisterResources(typeof(Module));

Les limites de cette approche lient dans l’impossibilité de définir les valeurs dynamiques et de grouper les valeurs qui se répétent sous un nom commun. Par exemple, l’utilisation suivante du code est incorrecte :

<SolidColorBrush x:Key="TextBlockLayoutId.Default.Foreground" 
            Color="{DynamicResource ThemeColor}"/>

Dans ce cas le type Color (System.Windows.Media.Color) et ThemeColor(SolidColorBrush) ne correspondent pas !

Il n’est pas recommandé d’utiliser cette méthode. Une exception est la définition des paramètres par défaut des colonnes de DataGrid.

Liste des propriétés prises en charge

Les tableaux ci-dessous contiennent un catalogue des propriétés qui sont gérées dans le panneau de configuration d’interface pour les contrôles individuels disponibles dans POS.

Propriété Nom
Propriété prise en charge [nom:type] Nom dans le panneau de gestion

Framework Element

System.Windows.FrameworkElement

 

Propriété Nom
Width : double Largeur
Height : double Hauteur
Margin : Thickness Marge
HorizontalAlignment : HorizontalAlignment Alignement horizontal
              VerticalAlignment : VerticalAlignment Alignement vertical
MaxWidth : double Largeur maximale
MaxHeight : double Hauteur maximale
Grid.Position : string Emplacement

Control

System.Windows.Controls.Control

 

Propriété Nom
Background : Brush Arrière-plan
Foreground : Brush Couleur du texte
FontSize : double Taille de la police
FontWeight : FontWeight Poids de la police
FontStyle : FontStyle Style de la police
Padding : Thickness Remplissage
Grid.Position : string Emplacement

Grid

System.Windows.Controls.Grid

 

Propriété Nom
Background : Brush Arrière-plan
Margin : Thickness Marge
Visibility: Visibility Visibilité
Width : double Largeur
Height : double Hauteur
Grid.Position : string Position

 

Comarch.POS.Presentation.Core.Controls.Grid

: System.Windows.Controls.Grid

Propriété Nom
ColumnDefinition : string Colonnes
RowDefinition : string Lignes

Border

System.Windows.Controls.Border

 

Propriété Nom
Visibility : Visibility Visibilité
Background : Brush Arrière-plan

ScrollViewer

System.Windows.Controls.ScrollViewer

: System.Windows.Controls.Control

 

Propriété Nom
VerticalScrollBarVisibility : ScrollBarVisibility Barre de défilement vertical
HorizontalSchrollBarVisibility : ScrollBarVisibility Barre de défilement horizontal
Width: double Largeur
Height : double Hauteur

 

Comarch.POS.Presentation.Core.Controls.ScrollViewer

: System.Windows.Controls.ScrollViewer

 

Propriété Nom

Separator

System.Windows.Controls.Separator

: System.Windows.FrameworkElement

 

Propriété Nom
Background : Brush Arrière-plan

TextBlock

System.Windows.Controls.TextBlock

: System.Windows.FrameworkElement

 

Propriété Nom
Background : Brush Arrière-plan
Foreground : Brush Couleur du texte
FontSize : double Taille de la police
FontWeight : FontWeight Poids de la police
FontStyle : FontStyle Style de la police
Padding : Thickness Remplissage
TextAlignment : TextAlignment Alignement du texte
Visibility : Visibility Visibilité
TextWrapping : TextWrapping Renvoi à la ligne

DoubleColorTextBlock

Comarch.POS.Presentation.Core.Controls.DoubleColorTextBlock

: System.Windows.FrameworkElement

 

Propriété Nom
FirstForeground : Brush Couleur du texte 1
SecondForeground : Brush Couleur du texte 2
Background : Brush Arrière-plan
FontSize : double Taille de la police
FontWeight : FontWeight Poids de la police
FontStyle : FontStyle Style de la police
Padding : Thickness Remplissage
Visibility : Visibility Visibilité

ErrorTextBlock

Comarch.POS.Presentation.Core.Controls.ErrorTextBlock

: System.Windows.Controls.TextBlock

 

Propriété Nom

TextBox

Comarch.WPF.Controls.TextBox

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Propriété Nom
BorderThickness : Thickness Encadrement
BorderBrush : Brush Couleur de l’encadrement
FocusedBorderBrush : Brush Couleur de l’encadrement (focus)
ErrorColor : Brush Couleur d’erreur
HintForeground : Brush Couleur d’indice
Hint: string Indice

 

Comarch.POS.Presentation.Core.Controls.TextBox

: Comarch.WPF.Controls.TextBox

 

Propriété Nom

Underline

Comarch.WPF.Controls.Underline

: System.Windows.FrameworkElement

 

Propriété Nom
Stroke : Brush Couleur
StrokeThickness : Thickness Épaisseur

 

Comarch.POS.Presentation.Core.Controls.Underline

: Comarch.WPF.Controls.Underline

 

Propriété Nom

ColumnDefinition

System.Windows.Controls.ColumnDefinition

 

Propriété Nom
Width : double Largeur

RowDefinition

System.Windows.Controls.RowDefinition

 

Propriété Nom
Height : double Hauteur

DataGridColumn

System.Windows.Controls.DataGridColumn

 

Propriété Nom
MaxWidth : double Largeur maximale
MinWidth : double Hauteur maximale
Width : DataGridLength Largeur
SortDirection : ListSortDirection Trier
Visibility : Visibility Visibilité
HorizontalAlignment : HorizontalAlignment Alignement horizontal

DataGridTemplateColumn

System.Windows.Controls.DataGridTemplateColumn

: System.Windows.Controls.DataGridColumn

 

Propriété Nom

DataGridTextColumn

System.Windows.Controls.DataGridTextColumn

: System.Windows.Controls.DataGridColumn

 

Propriété Nom
FontSize : double Taille de la police
Foreground : Brush Couleur du texte
FontWeight : FontWeight Poids de la police
FontStyle : FontStyle Style de la police

DataGridCell

System.Windows.Controls.DataGridCell

 

Propriété Nom
Margin : Thickness Marge
HorizontalAlignment : HorizontalAlignment Alignement horizontal

DataGridColumnHeader

System.Windows.Controls.Primitives.DataGridColumnHeader

 

Propriété Nom
Margin : Thickness Marge
HorizontalContentAlignment : HorizontalAlignment Alignement horizontal du contenu

DataGrid

Comarch.WPF.Controls.DataGrid

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Propriété Nom

 

Comarch.POS.Presentation.Core.Controls.DataGrid

 

Propriété Nom
RowBackground : Brush Arrière-plan de ligne
HeaderBackground : Brush Arrière-plan de l’en-tête
ScrollBarWidth : double Largeur de la barre de défilement
VerticalScrollBarVisibility : Visibility Barre de défilement vertical
HorizontalScrollBarVisibility : Visibility Barre de défilement horizontal
GroupBy : DataGridGroup Trier par
IsVirtualizingWhenGrouping : bool Virtualiser lignes
ScrollUnit : ScrollUnit Unité de glissière
Grid.Position : string Position

ItemsContainer

Comarch.POS.Presentation.Core.Controls.ItemsContainer

: System.Windows.FrameworkElement

 

Propriété Nom
Orientation : Orientation Orientation
Padding : Thickness Remplissage
Background : Brush Arrière-plan
MoreMultiButtonHeight : double Hauteur
MoreMultiButtonWidth : double Largeur
MoreMultiButtonImageHeight : double Hauteur d’icône
MoreMultiButtonImageWidth : double Largeur d’icône
MoreMultiButtonMargin : Thickness Marge
MoreMultiButtonImageMargin : Thickness Marge d’icône
MoreMultiButtonFontSize : double Taille de la police
MoreMultiButtonIsImageVisible : bool Afficher icône

Expander

Comarch.POS.Presentation.Core.Controls.Expander

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Propriété Nom
HeaderBackground : Brush Arrière-plan de l’en-tête
HeaderPadding : Thickness Remplissage de l’en-tête

Image

System.Windows.Controls.Image

: System.Windows.FrameworkElement

 

Propriété Nom
Stretch : Stretch Étendre
StretchDirection : StretchDirection Sens d’étirement

 

Comarch.WPF.Controls.Image

 

Propriété Nom
HorizontalAlignment : HorizontalAlignment Alignement horizontal
HorizontalContentAlignment : HorizontalAlignment Alignement horizontal du contenu
VerticalAlignment : VerticalAlignment Alignement vertical
VerticalContentAlignment : VerticalAlignment Alignement vertical du contenu

 

Comarch.POS.Presentation.Core.Controls.Image

: System.Windows.FrameworkElement

 

Propriété Nom
DefaultImageKey : ImageKey Icône par défaut

BundleImage

Comarch.POS.Presentation.Core.Controls.BundleImage

 

Propriété Nom
IconForeground : Brush Couleur
IconMargin : Thickness Marge
IconImageKey : ImageKey Icône
Width : double Largeur
Height : double Hauteur
PopupMaxWidth : double Hauteur maximale
PopupMinWidth : double Hauteur minimale

Button

Comarch.POS.Presentation.Core.Controls.Button

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Autres sur la base de Button, par exemple :

Comarch.POS.Presentation.Core.Controls.AcceptButton

Comarch.POS.Presentation.Core.Controls.CancelButton

Comarch.POS.Presentation.Core.Controls.SelectButton

Comarch.POS.Presentation.Core.Controls.CleanButton

Comarch.POS.Presentation.Core.Controls.TileButton

Comarch.POS.Presentation.Core.Controls.PaymentTypeTile

Comarch.POS.Presentation.Core.Controls.PrintLabelButton

Comarch.POS.Presentation.Core.Controls. ShowItemsVariantsButton

 

Propriété Nom
ImageKey : ImageKey Icône
ImageMargin : Thickness Marge d’icône
ImageWidth : double Largeur d’icône
ImageHeight : double Hauteur d’icône
ImageHorizontalAlignment : HorizontalAlignment Alignement horizontal
ImageVerticalAlignment : VerticalAlignment Alignement vertical
IsImageVisible : bool Afficher l’icône
ShortcutMargin : Thickness Marge
ShortcutWidth : double Largeur
ShortcutHeight : double Hauteur
ShortcutHorizontalAlignment : HorizontalAlignment Alignement horizontal
ShortcutVerticalAlignment : VerticalAlignment Alignement vertical
IsShortcutVisible : bool Afficher le raccourci
Shortcut : Shortcut Raccourci clavier
IsScaledShortcut : bool Mise à l’échelle du contenu
ContentMargin : Thickness Marge
ContentWidth : double Largeur
ContentHeight : double Hauteur
ContentHorizontalAlignment : HorizontalAlignment Alignement horizontal
ContentVerticalAlignment : VerticalAligment Alignement vertical
ContentVisibility : Visibility Visibilité
IsScaledContent : bool Mise à l’échelle du contenu
Orientation : Orientation Orientation
ItemsContainer.NoWrapButton : bool Ne pas agréger

RadioButton

Comarch.POS.Presentation.Core.Controls.RadioButton

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Propriété Nom
CheckedStateBackground : Brush Arrière-plan d’élément sélectionné
CheckedStateForeground : Brush Texte d’élément sélectionné
ImageKey : ImageKey Icône
ImageMargin : Thickness Marge d’icône
ImageWidth : double Largeur d’icône
ImageHeight : double Hauteur d’icône
ImageHorizontalAlignment : HorizontalAlignment Alignement horizontal
ImageVerticalAlignment : VerticalAlignment Alignement vertical
IsImageVisible : Visibility Afficher l’icône
ContentMargin : Thickness Marge
ContentWidth : double Largeur
ContentHeight : double Hauteur
ContentHorizontalAlignment : HorizontalAlignment Alignement horizontal
ContentVerticalAlignment : VerticalAlignment Alignement vertical
ContentVisibility : Visibility Visibilité
IsScaledContent : bool Mise à l’échelle du contenu
Orientation : Orientation Orientation

FieldControl

Comarch.POS.Presentation.Core.Controls.FieldControl

: System.Windows.FrameworkElement

 

Propriété Nom
Orientation : Orientation Orientation
LabelMargin : Thickness Marge
LabelWidth : double Largeur
LabelHeight : double Hauteur
LabelFontSize : double Taille de la police
LabelFontStyle : FontStyle Style de la police
LabelFontWeight : FontWeight Poids de la police
LabelForeground : Brush Couleur du texte
LabelForegroundError : Brush Couleur en absence de validation
LabelHorizontalAlignment: HorizontalAlignment Alignement horizontal
LabelVertivalAlignment: VerticalAlignment Alignement vertical
ContentIsRequired : bool Requis

CheckBox

Comarch.POS.Presentation.Core.Controls.CheckBox

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Propriété Nom
CheckedStateBackground : Brush Arrière-plan d’élément sélectionné
CheckedStateForeground : Brush Texte d’élément sélectionné
DisabledStateBackground : Brush Arrière-plan d’élément inactif
DisabledCheckedStateBackground : Brush Arrière-plan d’élément inactif sélectionné
ImageKey : ImageKey Icône
ImageMargin : Thickness Marge d’icône
ImageWidth : double Largeur d’icône
ImageHeight : double Hauteur d’icône
ImageHorizontalAlignment : HorizontalAlignment Alignement horizontal
ImageVerticalAlignment : VerticalAlignment Alignement vertical
IsImageVisible : Visibility Afficher l’icône
ContentMargin : Thickness Marge
ContentWidth : double Largeur
ContentHeight : double Hauteur
ContentHorizontalAlignment : HorizontalAlignment Alignement horizontal
ContentVerticalAlignment : VerticalAlignment Alignement vertical
ContentVisibility : Visibility Visibilité
IsScaledContent : bool Mise à l’échelle du contenu
Orientation : Orientation Orientation

ComboBox

Comarch.WPF.Controls.ComboBox

: System.Windows.FrameworkElement,

System.Windows.Controls.Control

 

Propriété Nom
HorizontalContentAlignment : HorizontalAlignment Alignement horizontal du contenu
PopupBackground : Brush Arrière-plan
FocusedBorderBrush : Brush Couleur de l’encadrement (focus)
ErrorColor : Brush Couleur d’erreur

 

Comarch.POS.Presentation.Core.Controls.ComboBox

: Comarch.WPF.Controls.TextBox

 

Propriété Nom

ComboBox2

Comarch.POS.Presentation.Core.Controls.   ComboBox2

 

Propriété Nom
LabelFontSize : double Taille de la police
LabelFontStyle : FontStyle Style de la police
LabelFontWeight : FontWeight Poids de la police
Shortcut : Shortcut Raccourci clavier
FontSize : double Taille de la police
FontWeight : FontWeight Poids de la police
FontStyle : FontStyle Style de la police
Visibility : Visibility Visibilité

AutoCompleteComboBox

Comarch.POS.Presentation.Core.Controls.AutoCompleteComboBox

: System.Windows.Controls.Control

 

Propriété Nom
HintForeground : Brush Couleur d’indice
Hint: string Indice
FocusedBorderBrush : Brush Couleur de l’encadrement (focus)
ErrorColor : Brush Couleur d’erreur

SwitchBox

Comarch.POS.Presentation.Core.Controls.SwitchBox

: System.Windows.Controls.Control

 

Propriété Nom
VerticalContentAlignment : VerticalAlignment Alignement vertical du contenu
Margin : Thickness Marge

Comarch.POS.Presentation.Core.Controls.SearchBox

 

Propriété Nom
FontSize : double Taille de la police
Foreground : Brush Arrière-plan
HintForeground : Brush Couleur d’indice
Margin : Thickness Marge
Hint: string Indice

DatePicker

Comarch.POS.Presentation.Core.Controls.DatePicker

: System.Windows.Controls.Control

 

Propriété Nom
FocusedBorderBrush : Brush Couleur de l’encadrement (focus)
ErrorColor : Brush Couleur d’erreur
BorderBrush : Brush Couleur de l’encadrement
Visibility : Visibility Visibilité

ButtonSpinner

Comarch.POS.Presentation.Core.Controls.ButtonSpinner

 

Propriété Nom
ButtonImageWidth : double Largeur
ButtonImageHeight : double Hauteur
ButtonWidth : double Largeur du bouton
ButtonHeight : double Hauteur du bouton

FilterItemsControl

Comarch.POS.Presentation.Core.Controls.FilterItemsControl

Propriété

Nom

MaxFilterItemsPerRow : int Nombre de filtres maximal

Visibility : Visibility

Visibilité

Grid.Position : string

Position

SearchBoxFilter

Comarch.POS.Presentation.Core.Controls.SearchBoxFilter

: Comarch.POS.Presentation.Core.Controls.ComboBox2

 

Propriété Nom
DefaultFilter : string Valeur de filtre par défaut

StockTile

Comarch.POS.Presentation.Core.Controls.StockTile

 

Propriété Nom
Background : Brush Arrière-plan
IsCodeVisible : bool Afficher le code d’entrepôt
WarehouseMargin : Thickness Marge
WarehouseCodeFontSize : double Taille de la police du code
WarehouseNameFontSize : double Taille de la police de la désignation
StocksFontSize : double Taille de la police
StocksMargin : Thickness Marge

SetValueNumbersKeyboard

Comarch.WPF.Controls.SetValueNumbersKeyboard

 

Propriété Nom
Visibility : Visibility Visibilité

AttributeControl

Comarch.POS.Presentation.Core.Controls.AttributeControl

: System.Windows.Controls.Control

 

Propriété Nom

AssistantControl

Comarch.POS.Presentation.Core.Controls.AssistantControl

 

Propriété Nom
LabelFontSize : double Taille de la police
LabelFontStyle : FontStyle Style de la police
LabelFontWeight : FontWeight Poids de la police
FontSize : double Taille de la police
FontWeight : FontWeight Poids de la police
FontStyle : FontStyle Style de la police
Shortcut : Shortcut Raccourci clavier
Visibility : Visibility Visibilité
Grid.Position : string Position

DocumentKeypad

Comarch.POS.Presentation.Core.Controls.DocumentKeypad

 

Propriété Nom
HeaderFontSize : double  
KeypadHeaderColor : Brush  

Czy ten artykuł był pomocny?