Jump to: navigation, search

Difference between revisions of "XAML"


(Converters)
(Advanced)
Line 47: Line 47:
 
* StringFormatConverter
 
* StringFormatConverter
 
Returns a formatted string where placeholders will be filled with values supplied to its ''Param'' properties.
 
Returns a formatted string where placeholders will be filled with values supplied to its ''Param'' properties.
* EvalExpressionConverter
+
* [[EvalExpressionConverter]]
 
Evaluates a C# expression and returns the result.
 
Evaluates a C# expression and returns the result.
 +
Example:
 +
<source lang = "xml">
 +
            <Grid>
 +
                <Grid.Resources>
 +
                    <!--  Instantiate the converter and bind the Context to the current DataContext, the Param0 to a UI element of this page  -->
 +
                    <converters:EvalExpressionConverter x:Key="CodeConverter" Context="{Binding}" Param0="{Binding ElementName=ChildListView, Path=Name}" />
 +
                </Grid.Resources>
 +
                <StackPanel Orientation="Horizontal">
 +
                    <!--  Create a TextBox where we can enter a C# expression  -->
 +
                    <TextBox
 +
                        x:Name="CodeQuery"
 +
                        MinWidth="240" Height="40"
 +
                        Margin="0,10,10,0" HorizontalAlignment="Right"
 +
                        VerticalAlignment="Top"
 +
                        FontSize="18"
 +
                        PlaceholderText="Expression">
 +
                    </TextBox>
 +
                    <!--  Create a TextBlock where we display the result of the compiled expression -->
 +
                    <TextBlock Text="{Binding ElementName=CodeQuery, Path=Text, Converter={StaticResource CodeConverter}}" />
 +
                </StackPanel>
 +
            </Grid>
 +
</source>
  
  

Revision as of 10:37, 25 August 2016

The WinX User Interface can be vastly customized using XAML.

Templates

The UI is controlled by several predefined XAML templates which are loaded into the App at startup. There is a set of default template deployed with the App at installation, however, each of them can be overridden by placing the respective file in the folder [AppInstallPath\LocalState\XAML

General

  • UBIKThemes.xaml

Controls the overall styling and behavior of the App, like standard Brushes (Colors) and Fonts.

AuthenticationPage

  • UBIKSplashArea.xaml
  • UBIKPageNavigation.xaml

Content Pages

  • UBIKObjectIcon.xaml
  • UBIKObjectIconSmall.xaml


RootPage

  • UBIKMainLeftArea.xaml
  • UBIKMainItem.xaml
  • UBIKMainItemSmall.xaml

ChildPage

  • UBIKChildItem.xaml
  • UBIKChildItemSmall.xaml
  • UBIKChildAction.xaml
  • UBIKPriorityPropertyItem.xaml

DetailsPage

  • UBIKDocumentItem.xaml
  • UBIKDocumentItemSmall.xaml



Specific UBIK® Elements

Converters

Basic

  • BooleanToVisibilityConverter

Converts a Boolean into a Visibility, where true will result in Visibility.Visible.

  • BooleanToCollapsedConverter

Converts a Boolean into a Visibility, where true will result in Visibility.Collapsed.

Advanced

  • StringFormatConverter

Returns a formatted string where placeholders will be filled with values supplied to its Param properties.

Evaluates a C# expression and returns the result. Example:

            <Grid>
                <Grid.Resources>
                    <!--  Instantiate the converter and bind the Context to the current DataContext, the Param0 to a UI element of this page  -->
                    <converters:EvalExpressionConverter x:Key="CodeConverter" Context="{Binding}" Param0="{Binding ElementName=ChildListView, Path=Name}" />
                </Grid.Resources>
                <StackPanel Orientation="Horizontal">
                    <!--  Create a TextBox where we can enter a C# expression  -->
                    <TextBox
                       x:Name="CodeQuery"
                       MinWidth="240" Height="40"
                       Margin="0,10,10,0" HorizontalAlignment="Right"
                       VerticalAlignment="Top"
                       FontSize="18"
                       PlaceholderText="Expression">
                    </TextBox>
                    <!--  Create a TextBlock where we display the result of the compiled expression -->
                    <TextBlock Text="{Binding ElementName=CodeQuery, Path=Text, Converter={StaticResource CodeConverter}}" />
                </StackPanel>
            </Grid>


Behaviors

Commands