Sic.Framework/MECF.Framework.UI.Client/CenterViews/Editors/Recipe/RecipeEditorView.xaml

1201 lines
59 KiB
Plaintext
Raw Normal View History

2023-04-13 11:51:03 +08:00
<UserControl
x:Class="MECF.Framework.UI.Client.CenterViews.Editors.Recipe.RecipeEditorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:OpenSEMI.Ctrlib.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dgExtension="clr-namespace:RecipeEditorLib.DGExtension"
xmlns:editors="clr-namespace:MECF.Framework.UI.Client.CenterViews.Editors"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:micro="clr-namespace:Caliburn.Micro"
d:DesignHeight="900"
d:DesignWidth="1500"
mc:Ignorable="d">
<UserControl.Resources>
<DataTemplate x:Key="TemplateStep">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="5,1"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<controls:CheckBoxExt
Margin="4"
IsChecked="{Binding Checked}"
Visibility="{Binding StepCheckVisibility}" />
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="14"
Foreground="Black"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding Visible}" />
</StackPanel>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ParamTemplate">
<Grid Width="320" Margin="0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="260" />
<ColumnDefinition Width="60" />
</Grid.ColumnDefinitions>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<TextBlock
Grid.Column="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Text="{Binding DisplayName}" />
<TextBlock
Grid.Column="1"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Text="{Binding UnitName}" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateText">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="1,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
Padding="5,3"
AllowBackgroundChange="True"
Foreground="Black"
IsEnabled="{Binding IsEnabled}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextSaved="{Binding IsSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateNumber">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="1,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
Padding="5,3"
AllowBackgroundChange="True"
EditBoxMode="Decimal"
Foreground="Black"
IsEnabled="{Binding IsEnabled}"
MaxValue="{Binding Maximun}"
MinValue="{Binding Minimun}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextSaved="{Binding IsSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateCombox">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="1,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<controls:ComboTextBlock
Padding="5,3"
AllowBackgroundChange="True"
Background="{Binding LoopBackground}"
Foreground="Black"
IsEditable="{Binding IsEditable}"
IsEnabled="{Binding IsEnabled}"
IsLoopItem="{Binding IsLoopItem}"
ItemsSource="{Binding Options}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextSaved="{Binding IsSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplatePopSetting">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="15,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<Button
Content="{Binding DisplayName}"
Foreground="Black"
IsEnabled="{Binding IsEnabled}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="PopSetting">
<micro:Parameter Value="{Binding Name}" />
<micro:Parameter Value="{Binding}" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ParamExpander">
<Border
Width="340"
Margin="-5,-8,-6,-8"
Background="LightGray">
<Expander
Margin="5"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Left"
VerticalContentAlignment="Stretch"
FontSize="14"
Header="{Binding DisplayName}"
IsExpanded="{Binding IsExpanded}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Expanded">
<micro:ActionMessage MethodName="ParamsExpanded">
<micro:Parameter Value="{Binding}" />
</micro:ActionMessage>
</i:EventTrigger>
<i:EventTrigger EventName="Collapsed">
<micro:ActionMessage MethodName="ParamsCollapsed">
<micro:Parameter Value="{Binding}" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</Expander>
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
</Border>
</DataTemplate>
<DataTemplate x:Key="TemplateExpander">
<Border
Width="160"
Margin="0,-5"
Background="LightGray">
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" />
</Border>
</DataTemplate>
<HierarchicalDataTemplate x:Key="FolderTemplate" ItemsSource="{Binding Files}">
<StackPanel Orientation="Horizontal" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}">
<Image
x:Name="ExpandImage"
Width="14"
Height="12"
Margin="2,0,0,0"
VerticalAlignment="Center"
Source="/MECF.Framework.UI.Client;component/Resources/Images/Folder_Close.png" />
<TextBlock
Margin="5,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding Name}" />
<StackPanel.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<Label
Margin="0"
Content="{Binding CurrentFileNode.FullPath}"
FontWeight="Black" />
<Separator />
<MenuItem
Command="{Binding NewRecipeCommand}"
Header="New Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteRecipeCommand}"
Header="Delete Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameRecipeCommand}"
Header="Rename Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding SaveAsRecipeCommand}"
Header="Save As Recipe"
IsEnabled="False" />
<Separator />
<MenuItem Command="{Binding NewFolderCommand}" Header="New Folder" />
<MenuItem Command="{Binding DeleteFolderCommand}" Header="Delete Folder" />
<MenuItem Command="{Binding RenameFolderCommand}" Header="Rename Folder" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
<HierarchicalDataTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="ExpandImage" Property="Image.Source" Value="/MECF.Framework.UI.Client;component/Resources/Images/Folder_Unable.png" />
</Trigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="FileTemplate" ItemsSource="{Binding Files}">
<StackPanel Orientation="Horizontal" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}">
<Path
Width="13"
Height="16"
HorizontalAlignment="Left"
Data="M0.5,5.125 L5.125,5.125 5.125,0.5 M5.1,0.5 L15.5,0.5 15.5,19.5 0.5,19.5 C0.5,14.7 0.5,10 0.5,5.1 2,3.6 3.6,2 5.1,0.5 z M8.1,8.5 L8.2,8.5 z M8.1,11.5 L8.2,11.5 z M8.1,14.5 L8.2,14.5 z"
Fill="#FFF3F3F3"
Stretch="Fill"
Stroke="#FF454545" />
<TextBlock
Margin="5,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding Name}" />
<StackPanel.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<Label
Margin="0"
Content="{Binding CurrentFileNode.FullPath}"
FontWeight="Black" />
<Separator />
<MenuItem
Command="{Binding NewRecipeCommand}"
Header="New Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteRecipeCommand}"
Header="Delete Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding RenameRecipeCommand}"
Header="Rename Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding SaveAsRecipeCommand}"
Header="Save As Recipe"
IsEnabled="{Binding IsPermission}" />
<Separator />
<MenuItem Command="{Binding NewFolderCommand}" Header="New Folder" />
<MenuItem
Command="{Binding DeleteFolderCommand}"
Header="Delete Folder"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameFolderCommand}"
Header="Rename Folder"
IsEnabled="False" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</HierarchicalDataTemplate>
<editors:FolderOrFileTemplateSelector
x:Key="FolderFileTemplateSelector"
FileTemplate="{StaticResource FileTemplate}"
FolderTemplate="{StaticResource FolderTemplate}" />
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Margin="5,5,5,0">
<StackPanel IsEnabled="{Binding IsPermission}" Orientation="Horizontal">
<Button
Width="80"
Height="30"
Content="New"
IsEnabled="True">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="NewRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="80"
Height="30"
Margin="5,0,0,0"
Content="Rename"
IsEnabled="{Binding EnableReName}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="RenameRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="80"
Height="30"
Margin="5,0,0,0"
Content="Delete"
IsEnabled="{Binding EnableDelete}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="DeleteRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="80"
Height="30"
Margin="5,0,0,0"
Content="Refresh"
IsEnabled="{Binding EnableReload}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="RefreshRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</StackPanel>
<Border
Grid.Row="1"
Margin="0,0,13,0"
Background="Transparent"
BorderBrush="{DynamicResource Tab_BD}"
BorderThickness="0">
<TabControl
Padding="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
ItemsSource="{Binding ProcessTypeFileList}"
SelectedIndex="{Binding ProcessTypeIndexSelection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ProcessType}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TreeView
x:Name="RecipeTree1"
Height="{Binding Path=ActualHeight, ElementName=PART_BORDER, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Margin="0"
VerticalAlignment="Stretch"
ItemTemplateSelector="{StaticResource FolderFileTemplateSelector}"
ItemsSource="{Binding FileListByProcessType}"
Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<TreeView.ItemContainerStyle>
<Style BasedOn="{StaticResource TreeViewItemExtend}" TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.ItemContainerStyle>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<micro:ActionMessage MethodName="TreeSelectChanged">
<micro:Parameter Value="{Binding SelectedItem, ElementName=RecipeTree1}" />
</micro:ActionMessage>
</i:EventTrigger>
<i:EventTrigger EventName="MouseRightButtonDown">
<micro:ActionMessage MethodName="TreeRightMouseDown">
<micro:Parameter Value="$eventargs" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<!--<Label Content=".\" FontWeight="Black" Margin="0"/>-->
<Separator />
<MenuItem
Command="{Binding NewRecipeRootCommand}"
Header="New Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteRecipeCommand}"
Header="Delete Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameRecipeCommand}"
Header="Rename Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding SaveAsRecipeCommand}"
Header="Save As Recipe"
IsEnabled="False" />
<Separator />
<MenuItem
Command="{Binding NewFolderRootCommand}"
Header="New Folder"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteFolderCommand}"
Header="Delete Folder"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameFolderCommand}"
Header="Rename Folder"
IsEnabled="False" />
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
</DataTemplate>
</TabControl.ContentTemplate>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<micro:ActionMessage MethodName="TabSelectionChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TabControl>
</Border>
</Grid>
<GridSplitter
Grid.Column="0"
Width="10"
Margin="0,55,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Stretch"
Background="Transparent"
Style="{DynamicResource VerticalGridSplitterStyle}" />
<Grid
Grid.Column="1"
Margin="0,0,0,0"
HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="220" />
<ColumnDefinition Width="430" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="1,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<Border
Grid.Column="1"
Padding="5,0"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,1,1,1">
<TextBlock
Width="Auto"
MinWidth="200"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="18"
Text="{Binding CurrentRecipe.Name}"
TextWrapping="Wrap" />
</Border>
</Border>
<Border
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
HorizontalAlignment="Right"
Content="Reload"
IsEnabled="{Binding EnableReload}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="ReloadRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="90"
Height="30"
Margin="10,0,10,0"
Content="Save"
IsEnabled="{Binding EnableSave}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="SaveRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</Border>
<Border
Grid.Column="3"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<StackPanel Orientation="Horizontal" Visibility="{Binding MultiChamberVisibility}">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Chamber" />
<ComboBox
Width="80"
Height="30"
Margin="10,0,0,0"
ItemsSource="{Binding Chambers}"
SelectedItem="{Binding SelectedChamber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<micro:ActionMessage MethodName="ChamberSelectionChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
<Button
Width="120"
Height="30"
Margin="10,0,0,0"
HorizontalAlignment="Right"
Content="Save To All"
IsEnabled="{Binding EnableSaveToAll}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="SaveToAll" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="120"
Height="30"
Margin="10,0,0,0"
Content="Save To..."
IsEnabled="{Binding EnableSaveTo}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="SaveTo" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</Border>
</Grid>
<TabControl Grid.Row="1" Margin="0,5,0,0">
<TabItem Header="Header">
<Grid HorizontalAlignment="Left" IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" />
<ColumnDefinition Width="280" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<controls:TextBoxEx
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
AllowBackgroundChange="False"
IsEnabled="False"
Text="{Binding CurrentRecipe.Name}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="0"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1" />
<Border
Grid.Row="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Description"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
Text="{Binding CurrentRecipe.Description, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextSaved="{Binding CurrentRecipe.IsSavedDesc, Mode=TwoWay}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1" />
<Border
Grid.Row="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Chamber Type"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="2"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
IsEnabled="False"
Text="{Binding CurrentRecipe.RecipeChamberType}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="2"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1" />
<Border
Grid.Row="3"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Format Version"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="3"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
Text="{Binding CurrentRecipe.RecipeVersion}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="3"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1" />
<Border
Grid.Row="4"
Grid.Column="0"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Create"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="4"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.Creator}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="4"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.CreateTime}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="5"
Grid.Column="0"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Revise"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="5"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="120"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.Revisor}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="5"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
MinWidth="140"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.ReviseTime}"
TextWrapping="Wrap" />
</Border>
</Grid>
</TabItem>
<TabItem Header="Steps" IsSelected="True">
<Grid
Grid.Row="1"
Margin="0,0,0,0"
IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="97*" />
<ColumnDefinition Width="1041*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Grid.ColumnSpan="2" Orientation="Horizontal">
<Button
Width="90"
Height="30"
Margin="250,0,0,0"
Content="Append"
IsEnabled="{Binding EnableStep}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="AddStep" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
Content="Insert"
IsEnabled="{Binding EnableStep}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="AppendStep" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
Content="Copy"
IsEnabled="{Binding EnableStep}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="CopyStep" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="100"
Height="30"
Margin="10,0,0,0"
Content="Paste Front"
IsEnabled="{Binding EnableStep}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="PasteFrontStep" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="100"
Height="30"
Margin="10,0,0,0"
Content=" Paste Back"
IsEnabled="{Binding EnableStep}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="PasteBackStep" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
Content="Delete"
IsEnabled="{Binding EnableStep}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="DeleteStep" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
<!--<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Grid.ColumnSpan="2">-->
<dgExtension:XDataGrid
x:Name="dgCustom"
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="0,0,15,15"
HorizontalAlignment="Left"
VerticalAlignment="Top"
AlternationCount="1"
AutoGenerateColumns="False"
Background="#00FFFFFF"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
FrozenColumnCount="4"
GridLinesVisibility="None"
HeadersVisibility="Column"
IsEnabled="{Binding IsPermission}"
SelectionMode="Single"
UseHorizontalScrolling="True"
Validation.ErrorTemplate="{x:Null}"
VerticalScrollBarVisibility="Auto"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<dgExtension:XDataGrid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</dgExtension:XDataGrid.LayoutTransform>
</dgExtension:XDataGrid>
<!--</ScrollViewer>-->
</Grid>
</TabItem>
<TabItem Header="Tolerance" Visibility="{Binding ToleranceVisibility}">
<ScrollViewer
Grid.Row="1"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<dgExtension:XDataGrid
x:Name="ToleranceGrid"
Margin="0,0,15,15"
HorizontalAlignment="Left"
VerticalAlignment="Top"
AlternationCount="1"
AutoGenerateColumns="False"
Background="#00FFFFFF"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
FrozenColumnCount="5"
GridLinesVisibility="None"
HeadersVisibility="Column"
IsEnabled="{Binding IsPermission}"
RowHeight="100"
SelectionMode="Single"
UseHorizontalScrolling="True"
Validation.ErrorTemplate="{x:Null}"
VerticalScrollBarVisibility="Auto"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<dgExtension:XDataGrid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</dgExtension:XDataGrid.LayoutTransform>
</dgExtension:XDataGrid>
</ScrollViewer>
</TabItem>
<TabItem Header="Config">
<DataGrid
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Left"
AlternationCount="2"
AutoGenerateColumns="False"
CanUserAddRows="False"
IsEnabled="{Binding IsPermission}"
ItemsSource="{Binding CurrentRecipe.ConfigItems}"
RowHeaderWidth="0"
RowHeight="35"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<DataGrid.Columns>
<DataGridTemplateColumn MinWidth="300" Header="Config Item">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Margin="5,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding DisplayName}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn MinWidth="180" Header="Value">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<controls:TextBoxEx
Margin="5,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextSaved="{Binding IsSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</TabItem>
</TabControl>
</Grid>
</Grid>
</UserControl>