<Border x:Class="SparkClient.Views.Configuration.AlgorithmConfigPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:hc="https://handyorg.github.io/handycontrol" xmlns:local="clr-namespace:SparkClient.Views" xmlns:configuration="clr-namespace:SparkClient.Views.Configuration" xmlns:system="clr-namespace:System;assembly=System.Runtime" mc:Ignorable="d" > <Border.Resources> <x:Array x:Key="ShapeList" Type="system:String"> <system:String>圆形</system:String> </x:Array> </Border.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition MinWidth="300" Width="5*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition MinWidth="300" Width="4*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <!-- 按钮组 --> <Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Button Grid.Column="0" Width="100" Margin=" 10 5 0 5 " Padding="0" Height="50" BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveAlgorithmDataCommand}" IsEnabled="{Binding IsEnabled}"> <Border HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" Padding="10, 10" Width="100" BorderThickness="0" CornerRadius="20"> <Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="#61bde2" Offset="0"/> <GradientStop Color="#53abd9" Offset="1"/> </LinearGradientBrush> </Border.Background> <TextBlock Text="{ DynamicResource Save}" TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock> </Border> </Button> <Button Grid.Column="3" Width="100" Margin="10 5 " Padding="0" Height="50" BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding BeautifyJsonCommand}"> <Border HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" Padding="10, 10" Width="100" BorderThickness="0" CornerRadius="20"> <Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="#61bde2" Offset="0"/> <GradientStop Color="#53abd9" Offset="1"/> </LinearGradientBrush> </Border.Background> <TextBlock Text="{ DynamicResource BeautifyJson}" TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock> </Border> </Button> <Button Grid.Column="4" Width="100" Margin="0 5 " Padding="0" Height="50" BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding UglifyJsonCommand}"> <Border HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" Padding="10, 10" Width="100" BorderThickness="0" CornerRadius="20"> <Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="#61bde2" Offset="0"/> <GradientStop Color="#53abd9" Offset="1"/> </LinearGradientBrush> </Border.Background> <TextBlock Text="{ DynamicResource UglifyJson}" TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock> </Border> </Button> <!-- Command="{Binding UglifyJsonCommand}" --> <Button Grid.Column="1" Width="100" Margin="10 5 0 5 " Padding="0" Height="50" x:Name="ButtonDelRow" BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Click="ButtonDelRow_OnClick"> <Border HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" Padding="10, 10" Width="100" BorderThickness="0" CornerRadius="20"> <Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="#61bde2" Offset="0"/> <GradientStop Color="#53abd9" Offset="1"/> </LinearGradientBrush> </Border.Background> <TextBlock Text="删除行" TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock> </Border> </Button> <!-- Command="{Binding AddCommand}" --> <Button Grid.Column="2" Width="100" Margin="10 5 0 5 " Padding="0" Height="50" x:Name="ButtonAddRow" Command="{Binding AddCommand}" BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Click="ButtonAddRow_OnClick" > <Border HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" Padding="10, 10" Width="100" BorderThickness="0" CornerRadius="20"> <Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="#61bde2" Offset="0"/> <GradientStop Color="#53abd9" Offset="1"/> </LinearGradientBrush> </Border.Background> <TextBlock Text="添加行" TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock> </Border> </Button> </Grid> <!-- 左侧DataGrid --> <Grid Grid.Row="1" Grid.Column="0" > <DataGrid x:Name="AgileJsonDataGrid" AutoGenerateColumns="False" ItemsSource="{Binding AgileJsonConfigEntities}" SelectionUnit="FullRow"> <DataGrid.Columns> <DataGridTemplateColumn Header="运行模式" Width="*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox ItemsSource="{Binding ModeList}" SelectedValue="{Binding Mode.Value}" DisplayMemberPath="Name" SelectedIndex="1" SelectedValuePath="Value"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Header="形状" Width="*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox IsEnabled="False" SelectedItem="圆形" ItemsSource="{Binding Source={StaticResource ShapeList}}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- 规格列修正为模板列 --> <DataGridTemplateColumn Header="规格" Width="2*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox ItemsSource="{Binding SpceList}" SelectedValue="{Binding Spec.Value}" DisplayMemberPath="Name" SelectedIndex="1" SelectedValuePath="Value"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- JSON Key列(带自动完成) --> <DataGridTemplateColumn Header="JSON Key" Width="3*" > <DataGridTemplateColumn.CellTemplate> <DataTemplate> <hc:AutoCompleteTextBox IsTextSearchEnabled="True" Text="{Binding JsonKey, Mode=TwoWay}" ItemsSource="{Binding JsonKeys}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- 动态Value列 --> <DataGridTextColumn Header="动态Value" Binding="{Binding Value}" Width="2*"/> </DataGrid.Columns> </DataGrid> </Grid> <!-- 中间 --> <GridSplitter Grid.Row="1" Grid.Column="1" Width="5" HorizontalAlignment="Stretch" Background="Transparent" /> <!-- 右侧json --> <Grid Grid.Row="1" Grid.Column="2" Background="Transparent" > <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <!-- <TextBlock Grid.Row="0"/> --> <avalonEdit:TextEditor Grid.Row="1" xmlns:avalonEdit="http://icsharpcode.net/sharpdevelop/avalonedit" Name="TextEditor" SyntaxHighlighting="JSON" FontFamily="Consolas" FontSize="16pt" LineNumbersForeground="Black" TextChanged="TextEditor_OnTextChanged" ShowLineNumbers="True" > <avalonEdit:TextEditor.Options> <avalonEdit:TextEditorOptions ShowSpaces="True" /> </avalonEdit:TextEditor.Options> </avalonEdit:TextEditor> </Grid> </Grid> </Border>