Contents
You can modify interface elements (controls) by changing directly manageable colors – a theme color (ThemeColor) and background color (ThemeBackground) – in the Interface Configuration panel or by adjusting elements globally (all controls of the same type at once) in the Global Elements panel or locally (independently per view) in the Layout Management panel. Changing any control parameter locally is treated with a higher priority than when changing it globally.
Layout.Id
Layout management depends on a number of factors. Primarily, a view must be properly registered (using the RegisterViews method from the ModuleBase class) and a relevant view model for the design mode (DesignViewModel) must be created. It is also necessary to assign an appropriate attribute to controls.
The attribute is Layout.Id and it must be unique within the entire POS application. This is essential to make it possible for a control to be manageable independently. If more than one control has the same ID, changing a property for only one of them will affect them all.
Setting default values for manageable properties
Default control values can be set up in several ways, depending on your needs.
1. Directly, as the attributes of a defined control in the xaml
<TextBlock Foreground="Red"/>
The control above will not be manageable, as the Layout.Id attribute has not been defined for it.
You can also combine this with color schemes and font:
<TextBlock Foreground="{DynamicResource ThemeColor}"/>
The control will only be manageable through the change of a color theme (a font color will be changed).
For a control to be manageable globally in the global interface configuration, it needs to be registered using the RegisterControl method from the ModuleBase class.
For a control to be manageable locally per view where it has been used (layout management), the view must be properly registered (using the RegisterViews method) and the control must have the Layout.Id attribute. When using Layout.Id, default control properties should not be set up directly in the control. If a default value, such as Foreground, is defined before determining Layout.Id, the value will be ignored. In turn, defining Foreground after Layout.Id will make the property unmanageable (it will always be overwritten with the directly set-up value).
Attributes should be set up directly only for unmanageable properties, such as ones that are not required for a control to work properly (e.g., Binding).
2. Control’s global style or local style (using 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" />
The example above illustrates global settings for the style of the font and background color of all TextBlock controls used within the current view <core:View>.
<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" />
The modification above presents how to use styles in order to set up only a selected control.
3. Default attribute defined in ModernUI.xaml according to the definition attribute_type x:Key=”[LayoutId].Default.[type_name]”>[default value]</attribute_type>
ModernUI.xml file
<SolidColorBrush x:Key="TextBlockLayoutId.Default.Foreground" Color="Red"/>
View file
<TextBlock core:Layout.Id="TextBlockLayoutId" />
The prerequisite for the example above to work properly is to register ModernUI.xaml resources of the module in the class registering the module (see the chapter New module in How to create views). In the constructor, it is necessary to call:
LayoutService.RegisterResources(typeof(Module));
This approach involves certain limitations, as it does not allow defining dynamic values and grouping recurrent values under a common name. For instance, it is not correc to use the following code:
<SolidColorBrush x:Key="TextBlockLayoutId.Default.Foreground"
Color="{DynamicResource ThemeColor}"/>
In this case, the type Color (System.Windows.Media.Color) and ThemeColor (SolidColorBrush) are incompatible!
Using this method is currently not recommended, except when defining default parameters for DataGrid columns.
Supported properties
The tables below list properties manageable in the interface configuration panel for individual controls available in POS application.
Control type
| Property | Name |
|---|---|
| Supported property [name : type] | Property name in the management panel |
FrameworkElement
System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Width : double | Width |
| Height : double | Height |
| Margin : Thickness | Margin |
| HorizontalAlignment : HorizontalAlignment | Align Horizontally |
| VerticalAlignment : VerticalAlignment | Align Vertically |
| MaxWidth : double | Max. Width |
| MaxHeight : double | Max. Height |
| Grid.Position : string | Area |
Control
System.Windows.Controls.Control
| Property | Name |
|---|---|
| Background : Brush | Background |
| Foreground : Brush | Foreground |
| FontSize : double | Font Size |
| FontWeight : FontWeight | Font Weight |
| FontStyle : FontStyle | Font Style |
| Padding : Thickness | Padding |
| Grid.Position : string | Area |
Grid
System.Windows.Controls.Grid
| Property | Name |
|---|---|
| Background : Brush | Background |
| Margin : Thickness | Margin |
| Visibility: Visibility | Visibility |
| Width: double | Width |
| Height: double | Height |
| Grid.Position : string | Area |
Comarch.POS.Presentation.Core.Controls.Grid
: System.Windows.Controls.Grid
| Property | Name |
|---|---|
| ColumnDefinition : string | Columns |
| RowDefinition : string | Rows |
Border
System.Windows.Controls.Border
| Property | Name |
|---|---|
| Visibility : Visibility | Visibility |
| Background : Brush | Background |
ScrollViewer
System.Windows.Controls.ScrollViewer
: System.Windows.Controls.Control
| Property | Name |
|---|---|
| VerticalScrollBarVisibility : ScrollBarVisibility | Vertical Scroll Bar |
| HorizontalSchrollBarVisibility : ScrollBarVisibility | Horizontal Scroll Bar |
| Width: double | Width |
| Height : double | Height |
Comarch.POS.Presentation.Core.Controls.ScrollViewer
: System.Windows.Controls.ScrollViewer
| Property | Name |
|---|
Separator
System.Windows.Controls.Separator
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Background : Brush | Background |
TextBlock
System.Windows.Controls.TextBlock
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Background : Brush | Background |
| Foreground : Brush | Foreground |
| FontSize : double | Font Size |
| FontWeight : FontWeight | Font Weight |
| FontStyle : FontStyle | Font Style |
| Padding : Thickness | Padding |
| TextAlignment : TextAlignment | Align Text |
| Visibility : Visibility | Visibility |
| TextWrapping : TextWrapping | Wrap Text |
DoubleColorTextBlock
Comarch.POS.Presentation.Core.Controls.DoubleColorTextBlock
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| FirstForeground : Brush | Foreground 1 |
| SecondForeground : Brush | Foreground 2 |
| Background : Brush | Background |
| FontSize : double | Font Size |
| FontWeight : FontWeight | Font Weight |
| FontStyle : FontStyle | Font Style |
| Padding : Thickness | Padding |
| Visibility : Visibility | Visibility |
ErrorTextBlock
Comarch.POS.Presentation.Core.Controls.ErrorTextBlock
: System.Windows.Controls.TextBlock
| Property | Name |
|---|
TextBox
Comarch.WPF.Controls.TextBox
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
| Property | Name |
|---|---|
| BorderThickness : Thickness | Border |
| BorderBrush : Brush | Border Color |
| FocusedBorderBrush : Brush | Border Color (Focus) |
| ErrorColor : Brush | Error Color |
| HintForeground : Brush | Hint Foreground |
| Hint: string | Hint Foreground |
Comarch.POS.Presentation.Core.Controls.TextBox
: Comarch.WPF.Controls.TextBox
| Property | Name |
|---|
Underline
Comarch.WPF.Controls.Underline
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Stroke : Brush | Color |
| StrokeThickness : Thickness | Thickness |
Comarch.POS.Presentation.Core.Controls.Underline
: Comarch.WPF.Controls.Underline
| Property | Name |
|---|
ColumnDefinition
System.Windows.Controls.ColumnDefinition
| Property | Name |
|---|---|
| Width : double | Width |
RowDefinition
System.Windows.Controls.RowDefinition
| Property | Name |
|---|---|
| Height : double | Height |
DataGridColumn
System.Windows.Controls.DataGridColumn
| Property | Name |
|---|---|
| MaxWidth : double | Max. Width |
| MinWidth : double | Max. Height |
| Width : DataGridLength | Width |
| SortDirection : ListSortDirection | Sort Direction |
| Visibility : Visibility | Visibility |
| HorizontalAlignment : HorizontalAlignment | Align Horizontally |
DataGridTemplateColumn
System.Windows.Controls.DataGridTemplateColumn
: System.Windows.Controls.DataGridColumn
| Property | Name |
|---|
DataGridTextColumn
System.Windows.Controls.DataGridTextColumn
: System.Windows.Controls.DataGridColumn
| Property | Name |
|---|---|
| FontSize : double | Font Size |
| Foreground : Brush | Foreground |
| FontWeight : FontWeight | Font Weight |
| FontStyle : FontStyle | Font Style |
DataGridCell
System.Windows.Controls.DataGridCell
| Property | Name |
|---|---|
| Margin : Thickness | Margin |
| HorizontalAlignment : HorizontalAlignment | Align Horizontally |
DataGridColumnHeader
System.Windows.Controls.Primitives.DataGridColumnHeader
| Property | Name |
|---|---|
| Margin : Thickness | Margin |
| HorizontalContentAlignment : HorizontalAlignment | Horizontal Content Alignment |
DataGrid
Comarch.WPF.Controls.DataGrid
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
| Property | Name |
|---|
Comarch.POS.Presentation.Core.Controls.DataGrid
| Property | Name |
|---|---|
| RowBackground : Brush | Row Background Color |
| HeaderBackground : Brush | Header Background |
| ScrollBarWidth : double | Scroll Bar Width |
| VerticalScrollBarVisibility : Visibility | Vertical Scroll Bar |
| HorizontalScrollBarVisibility : Visibility | Horizontal Scroll Bar |
| GroupBy : DataGridGroup | Group By |
| IsVirtualizingWhenGrouping : bool | Virtualize Records |
| ScrollUnit : ScrollUnit | Scroll Unit |
| Grid.Position : string | Area |
ItemsContainer
Comarch.POS.Presentation.Core.Controls.ItemsContainer
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Orientation : Orientation | Orientation |
| Padding : Thickness | Padding |
| Background : Brush | Background |
| MoreMultiButtonHeight : double | Height |
| MoreMultiButtonWidth : double | Width |
| MoreMultiButtonImageHeight : double | Icon Height |
| MoreMultiButtonImageWidth : double | Icon Width |
| MoreMultiButtonMargin : Thickness | Margin |
| MoreMultiButtonImageMargin : Thickness | Icon Margin |
| MoreMultiButtonFontSize : double | Font Size |
| MoreMultiButtonIsImageVisible : bool | Show Icon |
Expander
Comarch.POS.Presentation.Core.Controls.Expander
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
| Property | Name |
|---|---|
| HeaderBackground : Brush | Header Background |
| HeaderPadding : Thickness | Header Padding |
Image
System.Windows.Controls.Image
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Stretch : Stretch | Stretch |
| StretchDirection : StretchDirection | Stretch Direction |
Comarch.WPF.Controls.Image
| Property | Name |
|---|---|
| HorizontalAlignment : HorizontalAlignment | Align Horizontally |
| HorizontalContentAlignment : HorizontalAlignment | Horizontal Content Alignment |
| VerticalAlignment : VerticalAlignment | Align Vertically |
| VerticalContentAlignment : VerticalAlignment | Vertical Content Alignment |
Comarch.POS.Presentation.Core.Controls.Image
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| DefaultImageKey : ImageKey | Default Icon |
BundleImage
Comarch.POS.Presentation.Core.Controls.BundleImage
| Property | Name |
|---|---|
| IconForeground : Brush | Color |
| IconMargin : Thickness | Margin |
| IconImageKey : ImageKey | Icon |
| Width : double | Width |
| Height : double | Height |
| PopupMaxWidth : double | Max. Width |
| PopupMinWidth : double | Max. Height |
Button
Comarch.POS.Presentation.Core.Controls.Button
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
Other based on Button, such as:
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
| Property | Name |
|---|---|
| ImageKey : ImageKey | Icon |
| ImageMargin : Thickness | Icon Margin |
| ImageWidth : double | Icon Width |
| ImageHeight : double | Icon Height |
| ImageHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ImageVerticalAlignment : VerticalAlignment | Align Vertically |
| IsImageVisible : bool | Show Icon |
| ShortcutMargin : Thickness | Margin |
| ShortcutWidth : double | Width |
| ShortcutHeight : double | Height |
| ShortcutHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ShortcutVerticalAlignment : VerticalAlignment | Align Vertically |
| IsShortcutVisible : bool | Show Hotkey |
| Shortcut : Shortcut | Hotkey |
| IsScaledShortcut : bool | Scale Content |
| ContentMargin : Thickness | Margin |
| ContentWidth : double | Width |
| ContentHeight : double | Height |
| ContentHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ContentVerticalAlignment : VerticalAlignment | Align Vertically |
| ContentVisibility : Visibility | Visibility |
| IsScaledContent : bool | Scale Content |
| Orientation : Orientation | Orientation |
| ItemsContainer.NoWrapButton : bool | Do not aggregate |
RadioButton
Comarch.POS.Presentation.Core.Controls.RadioButton
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
| Property | Name |
|---|---|
| CheckedStateBackground : Brush | Selected Element Background |
| CheckedStateForeground: Brush | Selected Element Foreground |
| ImageKey : ImageKey | Icon |
| ImageMargin : Thickness | Icon Margin |
| ImageWidth : double | Icon Width |
| ImageHeight : double | Icon Height |
| ImageHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ImageVerticalAlignment : VerticalAlignment | Align Vertically |
| IsImageVisible : Visibility | Show Icon |
| ContentMargin : Thickness | Margin |
| ContentWidth : double | Width |
| ContentHeight : double | Height |
| ContentHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ContantVerticalAlignment : VerticalAlignment | Align Vertically |
| ContentVisibility : Visibility | Visibility |
| IsScaledContent : bool | Scale Content |
| Orientation : Orientantion | Orientation |
FieldControl
Comarch.POS.Presentation.Core.Controls.FieldControl
: System.Windows.FrameworkElement
| Property | Name |
|---|---|
| Orientation : Orientation | Orientation |
| LabelMargin : Thickness | Margin |
| LabelWidth : double | Width |
| LabelHeight : double | Height |
| LabelFontSize : double | Font Size |
| LabelFontStyle : FontStyle | Font Style |
| LabelFontWeight : FontWeight | Font Weight |
| LabelForeground : Brush | Foreground |
| LabelForegroundError : Brush | Unsuccessful Validation Color |
| LabelHorizontalAlignment: HorizontalAlignment | Align Horizontally |
| LabelVertivalAlignment: VerticalAlignment | Align Vertically |
| ContentIsRequired : bool | Required |
CheckBox
Comarch.POS.Presentation.Core.Controls.CheckBox
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
| Property | Name |
|---|---|
| CheckedStateBackground : Brush | Selected Element Background |
| CheckedStateForeground: Brush | Selected Element Foreground |
| DisabledStateBackground : Brush | Disabled Button B/G |
| DisabledCheckedStateBackground : Brush | Selected Disabled Button B/G |
| ImageKey : ImageKey | Icon |
| ImageMargin : Thickness | Icon Margin |
| ImageWidth : double | Icon Width |
| ImageHeight : double | Icon Height |
| ImageHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ImageVerticalAlignment : VerticalAlignment | Align Vertically |
| IsImageVisible : Visibility | Show Icon |
| ContentMargin : Thickness | Margin |
| ContentWidth : double | Width |
| ContentHeight : double | Height |
| ContentHorizontalAlignment : HorizontalAlignment | Align Horizontally |
| ContantVerticalAlignment : VerticalAlignment | Align Vertically |
| ContentVisibility : Visibility | Visibility |
| IsScaledContent : bool | Scale Content |
| Orientation : Orientation | Orientation |
ComboBox
Comarch.WPF.Controls.ComboBox
: System.Windows.FrameworkElement,
System.Windows.Controls.Control
| Property | Name |
|---|---|
| HorizontalContentAllignment : HorizontalAlignment | Horizontal Content Alignment |
| PopupBackground : Brush | Background |
| FocusedBorderBrush : Brush | Border Color (Focus) |
| ErrorColor : Brush | Error Color |
Comarch.POS.Presentation.Core.Controls.ComboBox
: Comarch.WPF.Controls.TextBox
| Property | Name |
|---|
ComboBox2
Comarch.POS.Presentation.Core.Controls.ComboBox2
| Property | Name |
|---|---|
| LabelFontSize : double | Font Size |
| LabelFontStyle : FontStyle | Font Style |
| LabelFontWeight : FontWeight | Font Weight |
| Shortcut : Shortcut | Hotkey |
| FontSize : double | Font Size |
| FontWeight : FontWeight | Font Weight |
| FontStyle : FontStyle | Font Style |
| Visibility : Visibility | Visibility |
AutoCompleteComboBox
Comarch.POS.Presentation.Core.Controls.AutoCompleteComboBox
: System.Windows.Controls.Control
| Property | Name |
|---|---|
| FocusedBorderBrush : Brush | Border Color (Focus) |
| ErrorColor : Brush | Error Color |
| HintForeground : Brush | Hint Foreground |
| Hint: string | Hint |
SwitchBox
Comarch.POS.Presentation.Core.Controls.SwitchBox
: System.Windows.Controls.Control
| Property | Name |
|---|---|
| VerticalContentAlignment : VerticalAlignment | Vertical Content Alignment |
| Margin : Thickness | Margin |
SearchBox
Comarch.POS.Presentation.Core.Controls.SearchBox
| Property | Name |
|---|---|
| FontSize : double | Font Size |
| Foreground : Brush | Background |
| HintForeground : Brush | Hint Foreground |
| Margin: Thickness | Margin |
| Hint: string | Hint |
DatePicker
Comarch.POS.Presentation.Core.Controls.DatePicker
: System.Windows.Controls.Control
| Property | Name |
|---|---|
| FocusedBorderBrush : Brush | Border Color (Focus) |
| ErrorColor : Brush | Error Color |
| BorderBrush : Brush | Border Color |
| Visibility : Visibility | Visibility |
ButtonSpinner
Comarch.POS.Presentation.Core.Controls.ButtonSpinner
| Property | Name |
|---|---|
| ButtonImageWidth : double | Width |
| ButtonImageHeight : double | Height |
| ButtonWidth : double | Button Width |
| ButtonHeight : double | Button Height |
FilterItemsControl
Comarch.POS.Presentation.Core.Controls.FilterItemsControl
| Property | Name |
|---|---|
| MaxFilterItemsPerRow : int | Max. Number of Filters |
| Visibility : Visibility | Visibility |
| Grid.Position : string | Area |
SearchBoxFilter
Comarch.POS.Presentation.Core.Controls.SearchBoxFilter
: Comarch.POS.Presentation.Core.Controls.ComboBox2
| Property | Name |
|---|---|
| DefaultFilter : string | Default Filter Value |
StockTile
Comarch.POS.Presentation.Core.Controls.StockTile
| Property | Name |
|---|---|
| Background : Brush | Background |
| IsCodeVisible : bool | Show Warehouse Code |
| WarehouseMargin : Thickness | Margin |
| WarehouseCodeFontSize : double | Code Font Size |
| WarehouseNameFontSize : double | Name Font Size |
| StocksFontSize : double | Font Size |
| StocksMargin : Thickness | Margin |
SetValueNumbersKeyboard
Comarch.WPF.Controls.SetValueNumbersKeyboard
| Property | Name |
|---|---|
| Visibility : Visibility | Visibility |
AttributeControl
Comarch.POS.Presentation.Core.Controls.AttributeControl
: System.Windows.Controls.Control
| Property | Name |
|---|
AssistantControl
Comarch.POS.Presentation.Core.Controls.AssistantControl
| Property | Name |
|---|---|
| LabelFontSize : double | Font Size |
| LabelFontStyle : FontStyle | Font Style |
| LabelFontWeight : FontWeight | Font Weight |
| FontSize : double | Font Size |
| FontWeight : FontWeight | Font Weight |
| FontStyle : FontStyle | Font Style |
| Shortcut : Shortcut | Hotkey |
| Visibility : Visibility | Visibility |
| Grid.Position : string | Area |
DocumentKeypad
Comarch.POS.Presentation.Core.Controls.DocumentKeypad
| Property | Name |
|---|---|
| HeaderFontSize : double | |
| KeypadHeaderColor : Brush |