Differences between revisions 1 and 2
Revision 1 as of 2015-03-03 02:38:20
Size: 4194
Comment:
Revision 2 as of 2015-03-03 02:45:02
Size: 4209
Comment:
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
{{{ {{{#!highlight xml

wpfXamlDemo

UNDER CONSTRUCTION

wpfXamlDemo is a Dyalog APL namespace that demonstrate the use of WPF Xaml with some utility functions.

WHAT IS XAML ?

XAML stands for Extensible Application Markup Language (and pronounced "Zammel"). It's a simple language based on XML to create and initialize .NET objects with hierarchical relations. All you can do in XAML can also be done in code. XAML is just another way to create and initialize objects. You can use WPF without using XAML. It's up to you if you want to declare it in XAML or write it in code. See UsingWPF_from_APLX for a more complete introduction. Here is an example of Xaml found in the attached namespace called sample1: Show sample1

   1 <Window
   2    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   3    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   4    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   5    Height="200"
   6    Width="250"
   7    Title="MainWindow"
   8    WindowStartupLocation="CenterScreen">
   9    <Grid x:Name="LayoutRoot">
  10       <Grid.RowDefinitions>
  11          <RowDefinition Height="0.5*"/>
  12          <RowDefinition Height="0.5*"/>
  13       </Grid.RowDefinitions>
  14       <TextBox
  15          x:Name="textBox1"
  16          Width="130"
  17          HorizontalAlignment="Center"
  18          VerticalAlignment="Center"
  19          Text="TextBox"
  20          TextAlignment="Center"/>
  21       <Button
  22          x:Name="button1"
  23          Height="40"
  24          Width="120"
  25          Grid.Row="1"
  26          HorizontalAlignment="Center"
  27          VerticalAlignment="Center"
  28          Content="Click Me !"/>
  29    </Grid>
  30 </Window>

If you install the attached workspace and execute the following 2 lines:

      win ← FixSimpleXaml sample1
      win.Show

The following Window is displayed:
Sample1.png

FixSimpleXaml is a function used to execute the Xaml and return the root element as a .Net object. All the other elements that are named in the Xaml will be attached by their named to the root object. For example the element TextBox is named textBox1 and the element Button is named button1:

      win.textBox1.Text
Textbox
      win.button1
System.Windows.Controls.Button: Click Me !

If you install the User Command sfPropGrid you can see all the properties and methods of the named objects by doing:

      ]noe win

FixSimpleXaml is a quick function to used on simple Xaml that do not have events and are properly formed. For cases where there is events that need to be fixed and error handling is necessary the function FixXaml is available. For example, with the Xaml code in sample2 that has an event on the button (Click="Button_Click"), if you do the following:

      win ← FixXaml sample2
      win.Show

and then you click on the button, the value of the TextBox will change. The value of the TextBox can be retreived by doing:

      win.textBox1.Text
I Was Clicked !

The function Button_Click is handling the event. The author has taken the convention of naming the callback functions with a double underscore prefix ''. The goal is to be able to take the Xaml directly from Visual Studio to APL. The single underscore '_' is a valid first character in Visual Studio and APL but is in conflict with the menu object that will accept an underscore as first character to signify a keyboard shortcut.

How to install wpfXamlDemo in your workspace

  1. Download wpfXamlDemo.v1.0.txt

  2. Do a Select all (Ctrl+A) and a copy (Ctrl+C).
  3. In your workspace execute )ed ⍟ wpfXamlDemo 

  4. Paste (Ctrl+V) the text into the Dyalog editor
  5. Press Escape and ')save' your workspace

Version Information

Original author:

Pierre Gilbert

Responsible:

PierreGilbert

Email:

<apgil AT SPAMFREE videotron DOT ca>

CategoryDyalogWpfUtilities

wpfXamlDemo (last edited 2017-10-19 12:19:35 by PierreGilbert)