Jump to: navigation, search

Changes


Xamarin XAML

210 bytes added, 07:47, 8 August 2019
The User Interface of the Xamarin Clients (Android, iOS, new UWP) can be fundamentally customized using custom XAML definitions. This customization process is heavily influenced by the [[XAML|XAML Customization Process on the WinX Client]].
== Basics ==
There are predefined XAML templates available that can be overridden. If no override is found, the default template will be used.
Overrides need to be placed in the following folder: <br/>
A list of predefined templates (all starting with UBIK) can be overwritten. The overrides will be loaded during the startup of the app.
=== Important ===
Make sure to change the extension to xaml'''x''' to achieve the desired loading and overriding behavior!
== UBIKThemes.xamlx ==
One of the most significant files is the ''UBIKThemes.xamlx'', as it is the place to override and extend '''global definitions'''. Definitions and changes made here will reflect over all templates and subtemplates of the app.
After adapting the ''UBIKThemes'' file, the app needs to be restarted to update the changes.
[[Category:Styling|Xamarin XAML]] == Overriding Styles ==
The steps shown here just work for the Windows (UWP) build of the Xamarin app. The ''LocalState'' folder can be accessed by the user and the customized xaml files directly added. On other systems (Android, iOS, etc.), you can use the ''Import Customizing'' button in the Settings to import the styles and images (file by file, for now). In both cases, the program needs to be restarted after the files have been imported/changed.
[[Image:ubik-with-blue-foreground.png|frameless|border]]
 === Custom Templates ===
Custom templates can be added, just like on the WinX client. Make sure to save the file as xaml'''x''' and include all '''namespace definitions''' (as attributes of the '''ContentView''' tag), otherwise the custom template will not load.
Templates can also be defined in ''UBIKThemes.xamlx''. In this case, they need to be added into the <code><ResourceDictionary></code> inside the <code><ContentView.Resources></code> template as a <code><DataTemplate></code>. Similarly, if you want to split up the templates into seperate files, you need to make sure to follow the steps mentioned above and get the content of the <code><DataTemplate></code> into the <code><ContentView.Content></code> tag. '''Templates defined in the ''UBIKThemes.xamlx'' override templates defined in seperate files!'''
=== Adding Images ===
Images can't be loaded with the default '''Image''' tag, as the image is on different paths on each operating system.
Furthermore, the ''FileImage'' tag doesn't seem to support most attributes. Therefore place it inside a '''Grid''' to achieve a perfect layout.
== Converters==They are used to convert specific data into some desired output, using custom logic.  Consider the following example:<br/>A label saying ''There are no children items available!'' should only be visible if the number of children-items is 0. = Differences to WinX ==
The biggest difference is that developers don't need to copy the whole '''UBIKThemes.xamlx''' file just to edit a few styles. Just the changes from the default styles (soon to be available on the [[https://release.augmensys.com/ Release Portal]]) need to be defined in the overwritten file!
187
edits