Die Businessobjects-Klasse hat ein Design mit dem ACIdentifier "AppResourceDict". Dieses Design ist ein ResourceDictionary die viele diverse Styles beinhaltet. Beim Startvorgang, wird kurz vor der Anzeige des Hauptfensters, diese ResourceDictionary in die globale ResourceDictionary der Anwendung geladen. Dieses "AppResourceDict"-Design können Sie in der Entwicklungsumgebung mit Ihren eigenen Styles erweitern um das "Look and Feel" der gesamten Anwendung anpassen zu können.
Styles einer Steuerelement-Klasse global anpassen
Falls Sie den Style von einem Steuerelement global einstellen möchten, dann müssen Sie die "TargetType" und die "BasedOn" Eigenschaft mit der "x:Type"-Markupextension setzen:
<Style TargetType="{x:Type vb:VBTextBlock}" BasedOn="{x:Type vb:VBTextBlock}">
<Style.Setters>
<Setter Property="FontSize" Value="16" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="#FFFF0000" />
</Style.Setters>
</Style>
Einen benannten Style definieren
Falls Sie in Ihren Designs gelegentlich einen bestimmten Style benötigen, dann definieren Sie den Style per "x:Key"-Attribut in der "AppResourceDict" :
<Style x:Key="globalStyleHeadlineText"
TargetType="{x:Type vb:VBTextBlock}" BasedOn="{x:Type vb:VBTextBlock}">
<Style.Setters>
<Setter Property="FontSize" Value="16" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="#FFFF0000" />
</Style.Setters>
</Style>
In Ihren Designs referenzieren Sie diesen Style per StaticResource:
<vb:VBTextBlock VBContent="SelectedOutPointConfig\ACCaption"
Style="{vb:VBStaticResource globalStyleHeadlineText}" />
Optimierung für Touchscreens
Wenn Ihre mit iPlus erstellte Anwendung auch auf Touchscreens bedient werden soll, dann müssen bestimmte Steuerelemente größer dargestellt werden. Umgekehrt, wenn kein Touchscreen verwendet wird, dann wären die vergrößerten Steuerelemente ggf. unpraktisch, weil viel Bildfläche verloren geht. Damit Sie jedoch nicht zwei unterschiedliche Designs programmieren müssen, stellt iPlus in der globalen ResourceDictionary die boolsche Eigenschaft "TouchScreenMode" zur Verfügung. Diese Eigenschaft ist wahr, wenn der Anwender im Loginfenster die Checkbox "Touchscreen" aktiviert hat.
Sie müssen dann lediglich in Ihren Designs per StaticResource auf diesen Wert zugreifen. Im folgenden Beispiel wird dies mit DataTriggern bewerkstelligt:
Im ersten Datatrigger wurde die minimale Zeilenhöhe für Datagrids definiert. Alle untergeordneten Datagrids stellen Ihre Datenzeilen mit mindestens 60pixel dar, damit der Anwender die Zeilen besser mit dem Finger treffen kann.
Im zweiten Datatrigger sollen die Buttons mit 60 pixel Höhe dargestellt werden.