Jump to: navigation, search

Difference between revisions of "XAML"


(Advanced)
(Advanced)
Line 45: Line 45:
  
 
=== Advanced ===
 
=== Advanced ===
* 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 parameter properties (''Param0, Param1, Param2'').
 +
 
 +
Example:
 +
<source lang = "xml">
 +
        <StackPanel Orientation="Horizontal">
 +
            <StackPanel.Resources>
 +
                <!--  Instantiate the converter and bind the the Param0 to a SearchBox on this page  -->
 +
                <converters:StringFormatConverter x:Key="URIConverter" Param0="{Binding ElementName=SkypeQuery, Path=QueryText}" />
 +
            </StackPanel.Resources>
 +
            <!--  Create a SearchBox that calls the typed Name via Skype on enter  -->
 +
            <SearchBox
 +
                x:Name="SkypeQuery"
 +
                Width="240" Height="40"
 +
                FontSize="18"
 +
                PlaceholderText="Call Skype">
 +
                <Interactivity:Interaction.Behaviors>
 +
                    <Core:EventTriggerBehavior EventName="QuerySubmitted">
 +
                        <Core:InvokeCommandAction
 +
                              Command="{Binding NavigateToURICommand}"
 +
                              CommandParameter="{Binding ElementName=EcoQuery, Path=QueryText, Converter={StaticResource URIConverter},
 +
                              ConverterParameter=skype:\{0\}\?call }" />
 +
                    </Core:EventTriggerBehavior>
 +
                </Interactivity:Interaction.Behaviors>
 +
            </SearchBox>
 +
        </StackPanel>
 +
</source>
 +
 
 
* [[EvalExpressionConverter]]
 
* [[EvalExpressionConverter]]
Evaluates a C# expression and returns the result.
+
Evaluates a C# expression with 3 optional variables (''Param0, Param1, Param2'') and returns the result.
 +
 
 
Example:
 
Example:
 
<source lang = "xml">
 
<source lang = "xml">

Revision as of 10:49, 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

Returns a formatted string where placeholders will be filled with values supplied to its parameter properties (Param0, Param1, Param2).

Example:

        <StackPanel Orientation="Horizontal">
            <StackPanel.Resources>
                <!--  Instantiate the converter and bind the the Param0 to a SearchBox on this page  -->
                <converters:StringFormatConverter x:Key="URIConverter" Param0="{Binding ElementName=SkypeQuery, Path=QueryText}" />
            </StackPanel.Resources>
            <!--  Create a SearchBox that calls the typed Name via Skype on enter  -->
            <SearchBox
               x:Name="SkypeQuery"
               Width="240" Height="40"
               FontSize="18"
               PlaceholderText="Call Skype">
                <Interactivity:Interaction.Behaviors>
                    <Core:EventTriggerBehavior EventName="QuerySubmitted">
                        <Core:InvokeCommandAction
                             Command="{Binding NavigateToURICommand}"
                             CommandParameter="{Binding ElementName=EcoQuery, Path=QueryText, Converter={StaticResource URIConverter},
                             ConverterParameter=skype:\{0\}\?call }" />

                    </Core:EventTriggerBehavior>
                </Interactivity:Interaction.Behaviors>
            </SearchBox>
        </StackPanel>

Evaluates a C# expression with 3 optional variables (Param0, Param1, Param2) 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