123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <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"
- xmlns:system="clr-namespace:System;assembly=System.Runtime"
- 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">
- <ContentControl MouseDoubleClick="FunctionTemplate_Click"
- Tag="{Binding}">
- <TextBlock Text="{Binding Template}"
- FontFamily="Consolas" FontSize="12"
- Padding="5">
- <TextBlock.ToolTip>
- <ToolTip Background="LightGray">
- <StackPanel>
- <TextBlock Text="{Binding Tooltip}"
- FontFamily="Consolas" FontSize="12"/>
- <TextBlock Text="{Binding Description}" FontSize="12"
- Style="{StaticResource tooltipDescriptionStyle}"/>
- </StackPanel>
- </ToolTip>
- </TextBlock.ToolTip>
- </TextBlock>
- </ContentControl>
- </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="{x:Type system:String}">
- <ContentControl MouseDoubleClick="Variable_Click"
- Tag="{Binding}">
- <TextBlock Text="{Binding}"
- FontFamily="Consolas" FontSize="12"
- Padding="5"/>
- </ContentControl>
- </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>
|