From e3868d4d61ded0e76fc8fe3fdacdd9e6d9113cf1 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 13 十月 2025 08:50:15 +0800
Subject: [PATCH] 优化HMI;

---
 Plugin.TestBuilder/TestBuilder.xaml |  226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 217 insertions(+), 9 deletions(-)

diff --git a/Plugin.TestBuilder/TestBuilder.xaml b/Plugin.TestBuilder/TestBuilder.xaml
index 996c7c8..0f38613 100644
--- a/Plugin.TestBuilder/TestBuilder.xaml
+++ b/Plugin.TestBuilder/TestBuilder.xaml
@@ -7,24 +7,232 @@
              xmlns:pw="https://opensource.panuon.com/wpf"
              xmlns:pu="https://opensource.panuon.com/wpf-ui"
              xmlns:ui="clr-namespace:Plugin.TestBuilder.UI"
+             xmlns:dd="urn:gong-wpf-dragdrop"
+             xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
+             xmlns:hui="clr-namespace:HMI.UI;assembly=HMI.UI"
              mc:Ignorable="d"
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
                 <pu:StyleDictionary Includes="ListBox"/>
+                <ResourceDictionary Source="/HMI.UI;component/Controls/TreeGrid/Themes/TreeItemContentControl.xaml"/>
+                <ResourceDictionary Source="/HMI.UI;component/Controls/TreeGrid/Themes/TreeGrid.xaml"/>
             </ResourceDictionary.MergedDictionaries>
+
+            <!-- 鏍慓rid缁勪欢 -->
+            <hui:TreeItemDataConverter x:Key="TreeItemDataConverter"/>
+
+            <CollectionViewSource x:Key="TreeGridFilter" Filter="CollectionViewSource_Filter" 
+                       Source="{Binding Datasource,Converter={StaticResource TreeItemDataConverter},ConverterParameter=Children}">
+
+            </CollectionViewSource>
         </ResourceDictionary>
     </UserControl.Resources>
 
-    <Grid>
-        <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
-            <Canvas x:Name="WorkArea" Background="{StaticResource CommonBoarder}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
-                <!--<vt:ProgramList BorderThickness="1" BorderBrush="#000" Canvas.Left="335" Canvas.Top="121" utils:Resize.IsResizeable="True"></vt:ProgramList>
-            <vt:ProgramList BorderThickness="1" BorderBrush="#000" Canvas.Left="600" Canvas.Top="121" FocusableChanged="ProgramList_FocusableChanged"></vt:ProgramList>-->
+    <Border Style="{StaticResource CardBoarder}">
+        <Grid dp:GridHelper.Space="10" Cursor="">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="Auto"/>
+                <RowDefinition Height="Auto"/>
+                <RowDefinition/>
+            </Grid.RowDefinitions>
 
-                <ui:BottomBar x:Name="BottomBar" Canvas.Bottom="0" Panel.ZIndex="9999999"/>
-            </Canvas>
-        </ScrollViewer>
-    </Grid>
+
+            <DockPanel>
+                <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
+                    <Button Style="{StaticResource AddBtn}"
+                            x:Name="addBtn" Click="Button_Click"/>
+                    <Button Style="{StaticResource RfhBtn}"
+                            x:Name="resetBtn" Click="Button_Click"/>
+                    <Button x:Name="exportBtn"
+                            Style="{StaticResource ExportBtn}" Click="Button_Click"/>
+                </StackPanel>
+                <TextBlock FontSize="{StaticResource TitleFontSize}" 
+VerticalAlignment="Center" HorizontalAlignment="Left" Text="adsad"/>
+
+                <!--<StackPanel Style="{StaticResource ButtonGroup}" HorizontalAlignment="Left">
+                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource log.level}"/>
+                    <ComboBox Style="{StaticResource FormComboxStyle}" x:Name="levelInput" 
+                              Width="180"
+                              SelectedValuePath="Content">
+                        <ComboBoxItem Content="Debug"/>
+                        <ComboBoxItem Content="Info"/>
+                        <ComboBoxItem Content="Warn"/>
+                        <ComboBoxItem Content="Error"/>
+                    </ComboBox>
+
+                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource App.StartTime}"/>
+                    <pu:DateTimePicker Style="{StaticResource TimePicker}" x:Name="startTimeInput"/>
+
+                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource App.EndTime}"/>
+                    <pu:DateTimePicker Style="{StaticResource TimePicker}" x:Name="endTimeInput"/>
+
+                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource log.source}"/>
+                    <TextBox Style="{StaticResource EditorTextBoxStyle}" x:Name="sourceInput" Width="180"/>
+
+                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource log.autoRefresh}"/>
+                    <CheckBox x:Name="autoRfhInput" HorizontalAlignment="Center" VerticalAlignment="Center"
+                              IsChecked="{Binding AutoRfh,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                </StackPanel>-->
+            </DockPanel>
+
+            <hui:TreeDataGrid Grid.Row="1" x:Name="treeDataGrid" 
+                              ExpandedChange="treeDataGrid_ExpandedChange" 
+                              ItemsSource="{Binding Source={StaticResource TreeGridFilter}}" 
+                              dd:DragDrop.IsDragSource="True"
+                              dd:DragDrop.IsDropTarget="True"
+                              dd:DragDrop.ShowAlwaysDropTargetAdorner="True"
+                              dd:DragDrop.UseDefaultDragAdorner="True"
+                              dd:DragDrop.DropHandler="{Binding dropHandler}"
+                              
+                              Style="{StaticResource DefaultDataGrid}" ColumnWidth="*">
+                <!--LoadingRow="treeDataGrid_LoadingRow">-->
+                <!--<hui:TreeDataGrid.Resources>
+                   
+                </hui:TreeDataGrid.Resources>-->
+                <hui:TreeDataGrid.Columns>
+                    <DataGridTemplateColumn IsReadOnly="True">
+                        <DataGridTemplateColumn.CellTemplate>
+                            <DataTemplate>
+                                <hui:TreeItemContentControl IconLineStroke="Black" TreeData="{Binding }"/>
+                            </DataTemplate>
+                        </DataGridTemplateColumn.CellTemplate>
+                    </DataGridTemplateColumn>
+
+                    
+
+                    <DataGridTextColumn Header="鍚嶇О" x:Name="nameCol" Binding="{Binding Data.Name}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="娴嬭瘯椤�" Binding="{Binding Item}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="涓婇檺" Binding="{Binding LimitUp}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="涓嬮檺" Binding="{Binding LimitDown}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="鍗曚綅" Binding="{Binding Unit}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="鍚敤" Binding="{Binding IsEnable}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="MES涓婁紶" Binding="{Binding IsUploadMes}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="閲嶆祴" Binding="{Binding IsRetest}"></DataGridTextColumn>
+
+                </hui:TreeDataGrid.Columns>
+            </hui:TreeDataGrid>
+
+            <!--<DataGrid Style="{StaticResource DefaultDataGrid}" AutoGenerateColumns="False"
+                CanUserSortColumns="False"
+              FrozenColumnCount="1" Background="#FFF" Grid.Row="1" 
+              BorderThickness="0"
+              dd:DragDrop.IsDragSource="True"
+              dd:DragDrop.IsDropTarget="True"
+              dd:DragDrop.ShowAlwaysDropTargetAdorner="True"
+              dd:DragDrop.UseDefaultDragAdorner="True"
+            IsReadOnly="False"
+                      x:Name="table"
+              dd:DragDrop.SelectDroppedItems="True"
+              dd:DragDrop.DropHandler="{Binding dropHandler}"       
+                      RowDetailsVisibilityMode="Collapsed"
+              ItemsSource="{Binding Datasource}">
+
+                <DataGrid.RowDetailsTemplate>
+                    <DataTemplate>
+                        <DataGrid Style="{StaticResource DefaultDataGrid}"
+            HeadersVisibility="None"
+                          ItemsSource="{Binding Children}">
+                            <DataGrid.Columns>
+                                <DataGridTemplateColumn Header="#" CanUserResize="False">
+                                    <DataGridTemplateColumn.CellTemplate>
+                                        <DataTemplate>
+                                            <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+                                        </DataTemplate>
+                                    </DataGridTemplateColumn.CellTemplate>
+                                </DataGridTemplateColumn>
+
+                                <DataGridTextColumn Header="鍚嶇О" Width="{Binding ElementName=nameCol,Path=Width}"
+                                                    Binding="{Binding Name}"></DataGridTextColumn>
+                            </DataGrid.Columns>
+                        </DataGrid>
+                    </DataTemplate>
+                </DataGrid.RowDetailsTemplate>
+
+
+                --><!--<DataGrid.GroupStyle>
+                    -->
+                <!-- Style for groups at top level. -->
+                <!--
+                    <GroupStyle>
+                        <GroupStyle.ContainerStyle>
+                            <Style TargetType="{x:Type GroupItem}">
+                                <Setter Property="Margin" Value="0,0,0,5"/>
+                                <Setter Property="Template">
+                                    <Setter.Value>
+                                        <ControlTemplate TargetType="{x:Type GroupItem}">
+                                            <Expander IsExpanded="True" Background="Pink" BorderBrush="Pink" BorderThickness="1,1,1,5">
+                                                <Expander.Header>
+                                                    <DockPanel>
+                                                        <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100"/>
+                                                        <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/>
+                                                    </DockPanel>
+                                                </Expander.Header>
+                                                <Expander.Content>
+                                                    <ItemsPresenter />
+                                                </Expander.Content>
+                                            </Expander>
+                                        </ControlTemplate>
+                                    </Setter.Value>
+                                </Setter>
+                            </Style>
+                        </GroupStyle.ContainerStyle>
+                    </GroupStyle>
+                    -->
+                <!-- Style for groups under the top level. -->
+                <!--
+                    <GroupStyle>
+                        <GroupStyle.HeaderTemplate>
+                            <DataTemplate>
+                                <DockPanel Background="LightBlue">
+                                    <TextBlock Text="{Binding Path=Name}" Foreground="Blue" Margin="30,0,0,0" Width="100"/>
+                                    <TextBlock Text="{Binding Path=ItemCount}" Foreground="Blue"/>
+                                </DockPanel>
+                            </DataTemplate>
+                        </GroupStyle.HeaderTemplate>
+                    </GroupStyle>
+                </DataGrid.GroupStyle>--><!--
+
+                <DataGrid.Columns>
+                    <DataGridTemplateColumn Header="#" x:Name="numCol" CanUserResize="False">
+                        <DataGridTemplateColumn.CellTemplate>
+                            <DataTemplate>
+                                <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+                            </DataTemplate>
+                        </DataGridTemplateColumn.CellTemplate>
+                    </DataGridTemplateColumn>
+
+                    <DataGridTextColumn Header="鍚嶇О" x:Name="nameCol" Binding="{Binding Name}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="娴嬭瘯椤�" Binding="{Binding Item}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="涓婇檺" Binding="{Binding LimitUp}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="涓嬮檺" Binding="{Binding LimitDown}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="鍗曚綅" Binding="{Binding Unit}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="鍚敤" Binding="{Binding IsEnable}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="MES涓婁紶" Binding="{Binding IsUploadMes}"></DataGridTextColumn>
+                    <DataGridTextColumn Header="閲嶆祴" Binding="{Binding IsRetest}"></DataGridTextColumn>
+                    --><!--<DataGridTextColumn Header="涓嬩竴姝�" Binding="{Binding NextSeq}"></DataGridTextColumn>--><!--
+
+                    <DataGridTemplateColumn x:Name="opt" Width="*" Header="鎿嶄綔">
+                        <DataGridTemplateColumn.CellTemplate>
+                            <DataTemplate>
+                                <StackPanel Orientation="Horizontal">
+                                    <Button Style="{StaticResource EditLink}" Margin="0,0,20,0"/>
+                                    <Button Style="{StaticResource DeleteLink}"/>
+                                    <Button Style="{StaticResource DeleteLink}" Click="Button_Click"
+                                            DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
+                                        AncestorType=DataGridRow,AncestorLevel=1}}"
+                                            Tag="{Binding }"
+                                            x:Name="sda"
+                                            Content="灞曞紑"/>
+                                </StackPanel>
+                            </DataTemplate>
+                        </DataGridTemplateColumn.CellTemplate>
+                    </DataGridTemplateColumn>
+                </DataGrid.Columns>
+            </DataGrid>-->
+        </Grid>
+    </Border>
 </hb:PluginControl>

--
Gitblit v1.9.1