| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | <Window x:Class="InABox.DynamicGrid.ExpressionEditorWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"        xmlns:local="clr-namespace:InABox.DynamicGrid"        mc:Ignorable="d"        Title="Expression Editor" Height="650" Width="800"        Loaded="ExpressionWindow_Loaded"        x:Name="ExpressionWindow">    <Window.Resources>        <Style x:Key="tooltipDescriptionStyle" TargetType="TextBlock">            <Style.Triggers>                <DataTrigger Binding="{Binding Path=Description}" Value="">                    <Setter Property="Visibility" Value="Collapsed" />                </DataTrigger>            </Style.Triggers>        </Style>    </Window.Resources>    <Grid Margin="5">        <Grid.ColumnDefinitions>            <ColumnDefinition Width="*"/>            <ColumnDefinition Width="250"/>        </Grid.ColumnDefinitions>        <Grid.RowDefinitions>            <RowDefinition Height="*"/>            <RowDefinition Height="Auto"/>        </Grid.RowDefinitions>        <TextBox x:Name="Editor"                 Grid.Column="0" Grid.Row="0" Grid.RowSpan="2"                 Background="LightYellow"                 BorderThickness="1,1,0,1"                 Padding="5"                 FontFamily="Consolas" FontSize="12"                 TextWrapping="Wrap"                 PreviewLostKeyboardFocus="Editor_PreviewLostKeyboardFocus"                 PreviewTextInput="Editor_PreviewTextInput"                 KeyDown="Editor_KeyDown"/>        <Border Grid.Column="1" Grid.Row="0"                BorderBrush="DarkGray" BorderThickness="1,0,0,0">            <ScrollViewer VerticalScrollBarVisibility="Auto">                <StackPanel>                    <Border BorderThickness="0,0,0,1" BorderBrush="LightGray"                            Padding="5">                        <Expander Header="Functions">                            <ItemsControl ItemsSource="{x:Static local:ExpressionEditorWindow.FunctionTemplates}">                                <ItemsControl.ItemTemplate>                                    <DataTemplate>                                        <Border BorderThickness="1,0,0,1" BorderBrush="WhiteSmoke"                                                Padding="5">                                            <Expander Header="{Binding Item1}">                                                <ListBox ItemsSource="{Binding Item2}"                                                         HorizontalContentAlignment="Stretch"                                                         BorderThickness="0">                                                    <ListBox.Template>                                                        <ControlTemplate>                                                            <ItemsPresenter/>                                                        </ControlTemplate>                                                    </ListBox.Template>                                                    <ListBox.ItemTemplate>                                                        <DataTemplate DataType="local:FunctionTemplate">                                                            <Label Content="{Binding Template}"                                                                   FontFamily="Consolas" FontSize="12"                                                                   Padding="5"                                                                   Tag="{Binding}"                                                                   MouseDoubleClick="FunctionTemplate_Click">                                                                <Label.ToolTip>                                                                    <ToolTip Background="LightGray">                                                                        <StackPanel>                                                                            <TextBlock Text="{Binding Tooltip}"                                                                                    FontFamily="Consolas" FontSize="12"/>                                                                            <TextBlock Text="{Binding Description}" FontSize="12"                                                                                    Style="{StaticResource tooltipDescriptionStyle}"/>                                                                        </StackPanel>                                                                    </ToolTip>                                                                </Label.ToolTip>                                                            </Label>                                                        </DataTemplate>                                                    </ListBox.ItemTemplate>                                                </ListBox>                                            </Expander>                                        </Border>                                    </DataTemplate>                                </ItemsControl.ItemTemplate>                            </ItemsControl>                        </Expander>                    </Border>                    <Border BorderThickness="0,0,0,1" BorderBrush="LightGray"                            Margin="0,5,0,0"                            Padding="5">                        <Expander Header="Variables" IsExpanded="True">                            <ListBox ItemsSource="{Binding Path=Variables,ElementName=ExpressionWindow}"                                     HorizontalContentAlignment="Stretch"                                     BorderThickness="0">                                <ListBox.Template>                                    <ControlTemplate>                                        <ItemsPresenter/>                                    </ControlTemplate>                                </ListBox.Template>                                <ListBox.ItemTemplate>                                    <DataTemplate DataType="local:string">                                        <Label Content="{Binding}"                                               FontFamily="Consolas" FontSize="12"                                               Tag="{Binding}"                                               MouseDoubleClick="Variable_Click"/>                                    </DataTemplate>                                </ListBox.ItemTemplate>                            </ListBox>                        </Expander>                    </Border>                </StackPanel>            </ScrollViewer>        </Border>        <Border Grid.Column="1" Grid.Row="1"                BorderBrush="DarkGray" BorderThickness="1,0,0,0">            <DockPanel LastChildFill="False">                <Button Content="OK"                        DockPanel.Dock="Right"                        Click="OK_Click"                        Padding="5" Width="50" Height="30"/>            </DockPanel>        </Border>    </Grid></Window>
 |