From 7bf89fd93bc487e8445d6d85bb527251b7371a04 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 12 五月 2025 13:14:11 +0800
Subject: [PATCH] 优化项目;
---
HMI.DataViewer/DataViewer.xaml | 334 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 233 insertions(+), 101 deletions(-)
diff --git a/HMI.DataViewer/DataViewer.xaml b/HMI.DataViewer/DataViewer.xaml
index ebd4758..de10e6e 100644
--- a/HMI.DataViewer/DataViewer.xaml
+++ b/HMI.DataViewer/DataViewer.xaml
@@ -9,119 +9,251 @@
xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
xmlns:pw="https://opensource.panuon.com/wpf"
xmlns:pu="https://opensource.panuon.com/wpf-ui"
- xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
+ Background="{StaticResource WorkspaceBackground}"
+ Loaded="PluginControl_Loaded"
d:DesignHeight="450" d:DesignWidth="800">
- <UserControl.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <pu:StyleDictionary Includes="TreeView" />
- <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
- <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
- </ResourceDictionary.MergedDictionaries>
+ <Border Style="{StaticResource CardBoarder}">
+ <Grid dp:GridHelper.Space="10">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition/>
+ </Grid.RowDefinitions>
- <uic:PathImageConverter x:Key="path2Image"/>
- <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
- </ResourceDictionary>
- </UserControl.Resources>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="7*"/>
+ <ColumnDefinition Width="3*"/>
+ </Grid.ColumnDefinitions>
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="7*"/>
- <ColumnDefinition Width="3*"/>
- </Grid.ColumnDefinitions>
+ <DockPanel Grid.ColumnSpan="2">
+ <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
+ <Button Style="{StaticResource AddBtn}" x:Name="addBtn" Click="Button_Click"/>
+ <Button Style="{StaticResource EditBtn}" x:Name="editBtn" Click="Button_Click"/>
+ <Button Style="{StaticResource RfhBtn}" x:Name="rfhBtn" Click="Button_Click"/>
+ <Button Style="{StaticResource DelBtn}" x:Name="delBtn" Click="Button_Click"/>
+ </StackPanel>
+ <TextBlock Style="{StaticResource TitleBox}" Text="{DynamicResource Dv.Title}"/>
+ </DockPanel>
- <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
- <StackPanel>
- <DockPanel Margin="0,0,0,10">
- <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
- <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
-pu:IconHelper.FontFamily="{StaticResource iconfont}"
-pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
- <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
- pu:IconHelper.FontFamily="{StaticResource iconfont}"
- pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
- <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
- VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟鍒楄〃"/>
- </DockPanel>
+ <!--<Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition/>
+ <ColumnDefinition/>
+ </Grid.ColumnDefinitions>
+ </Grid>-->
+ <StackPanel Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Left" Style="{StaticResource ButtonGroup}">
- <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
+ <TextBlock Style="{StaticResource TitleBox}" FontSize="{StaticResource ContentFontSize2}"
+ Text="{DynamicResource Dv.SelectItem}"/>
+ <ComboBox x:Name="programInput"
+ MinWidth="180"
+ SelectionChanged="programInput_SelectionChanged"/>
+
+ <TextBlock Style="{StaticResource TitleBox}" FontSize="{StaticResource ContentFontSize2}"
+ Text="{DynamicResource App.StartTime}"/>
+ <pu:DateTimePicker Style="{StaticResource TimePicker}" SelectedDateTime="{x:Null}" x:Name="startTimeInput"/>
+ <TextBlock Style="{StaticResource TitleBox}" FontSize="{StaticResource ContentFontSize2}"
+ Text="{DynamicResource App.EndTime}"/>
+ <pu:DateTimePicker Style="{StaticResource TimePicker}" SelectedDateTime="{x:Null}" x:Name="endTimeInput"/>
+
+
+ <Button Style="{StaticResource QueryBtn}"
+ x:Name="srhBtn" Click="Button_Click"/>
+
+ <Button Style="{StaticResource ResetBtn}"
+ x:Name="resetBtn" Click="Button_Click"/>
+
+ <Button Style="{StaticResource ExportBtn}"
+ x:Name="exportBtn" Click="Button_Click"/>
+
+ <!--<Menu x:Name="anyBtn" Style="{StaticResource CommonMenu}">
+ <MenuItem Header="鍒嗘瀽">
+ <MenuItem Header="CPK" Click="MenuItem_Click"/>
+ <MenuItem Header="RandR" />
+ </MenuItem>
+ </Menu>-->
+
+ </StackPanel>
+
+ <DockPanel Grid.Row="2" Grid.ColumnSpan="2" Margin="0,10,0,0">
+ <pu:Drawer DockPanel.Dock="Left" x:Name="DrwMenu" MinWidth="35" MaxWidth="400"
+ Padding="0"
+ ShadowColor="{x:Null}"
+ AnimationDuration="0" BorderThickness="2,0,0,2" BorderBrush="{StaticResource CommonBoarder}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition/>
+ <ColumnDefinition Width="Auto"/>
+ </Grid.ColumnDefinitions>
+
+ <Border Grid.ColumnSpan="2" BorderThickness="2" BorderBrush="{StaticResource CommonBoarder}" Background="{StaticResource VerBar}">
+ <DockPanel Height="35">
+ <ToggleButton x:Name="drawerBtn" BorderThickness="0"
+ DockPanel.Dock="Right"
+ Background="Transparent"
+ Width="35" Height="35" HorizontalAlignment="Right"
+ RenderTransformOrigin="0.5,0.5"
+ Foreground="{StaticResource PrimaryColorContract}"
+ FontFamily="{StaticResource iconfont}"
+ Content="" IsChecked="{Binding IsOpen, ElementName=DrwMenu, Mode=TwoWay}">
+ <ToggleButton.Style>
+ <Style TargetType="ToggleButton" BasedOn="{StaticResource CommonToggle}">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsOpen, ElementName=DrwMenu}" Value="False">
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <RotateTransform Angle="-90"/>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding IsOpen, ElementName=DrwMenu}" Value="True">
+ <Setter Property="Background" Value="Red"/>
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <RotateTransform Angle="90"/>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <Trigger Property="IsChecked" Value="True">
+ <Setter Property="Background" Value="Red"/>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </ToggleButton.Style>
+ </ToggleButton>
+
+ <TextBlock Text="{DynamicResource Dv.Advanced}" FontSize="16"
+ Foreground="{StaticResource PrimaryColorContract}"
+ VerticalAlignment="Center" HorizontalAlignment="Center"/>
+ </DockPanel>
+ </Border>
+
+
+ <Grid Grid.Row="1">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition/>
+ </Grid.ColumnDefinitions>
+
+ <!--<DockPanel Margin="10,10,10,0" Grid.ColumnSpan="2">
+ <Label Content="{DynamicResource Dv.SelectItem}"/>
+ <ComboBox Grid.Column="1" x:Name="programInput" SelectionChanged="programInput_SelectionChanged"/>
+ </DockPanel>-->
+
+ <DataGrid Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource DefaultDataGrid}"
+ IsReadOnly="False"
+ SelectionMode="Single"
+ BorderThickness="0"
+ ItemsSource="{Binding Datas}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="#" IsReadOnly="True" 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 IsReadOnly="True" Width="*" Binding="{Binding Key}">
+ <DataGridTextColumn.Header>
+ <TextBlock Text="{DynamicResource Dv.Field}"/>
+ </DataGridTextColumn.Header>
+ </DataGridTextColumn>
+
+ <DataGridTemplateColumn Width="*">
+ <DataGridTemplateColumn.Header>
+ <TextBlock Text="{DynamicResource Dv.Condition}"/>
+ </DataGridTemplateColumn.Header>
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Condition}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ <DataGridTemplateColumn.CellEditingTemplate>
+ <DataTemplate>
+ <ComboBox SelectedValue="{Binding Condition}"
+ SelectedValuePath="Content" >
+ <ComboBoxItem Content="="/>
+ <ComboBoxItem Content="<"/>
+ <ComboBoxItem Content=">"/>
+ <ComboBoxItem Content="<="/>
+ <ComboBoxItem Content=">="/>
+ </ComboBox>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellEditingTemplate>
+ </DataGridTemplateColumn>
+
+ <DataGridTextColumn Width="*" Binding="{Binding Value}" >
+ <DataGridTextColumn.Header>
+ <TextBlock Text="{DynamicResource Dv.Value}"/>
+ </DataGridTextColumn.Header>
+ <DataGridTextColumn.HeaderTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="*" Foreground="Red" />
+ <ContentControl Content="{Binding }"/>
+ </StackPanel>
+ </DataTemplate>
+ </DataGridTextColumn.HeaderTemplate>
+ </DataGridTextColumn>
+ </DataGrid.Columns>
+
+ </DataGrid>
+ </Grid>
+
+ <Label Grid.Row="1" Grid.Column="1" Width="100" Height="34"
+ VerticalContentAlignment="Center"
+ HorizontalContentAlignment="Center"
+ Content="{DynamicResource Dv.Advanced}"
+ FontSize="16">
+ <Label.LayoutTransform>
+ <RotateTransform CenterX="25" CenterY="25" Angle="270"/>
+ </Label.LayoutTransform>
+
+ <Label.Style>
+ <Style TargetType="Label">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsOpen, ElementName=DrwMenu,Mode=OneWay}" Value="True">
+ <Setter Property="Visibility" Value="Collapsed"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding IsOpen, ElementName=DrwMenu}" Value="False">
+ <Setter Property="Visibility" Value="Visible"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Label.Style>
+ </Label>
+ </Grid>
+ </pu:Drawer>
+
+ <DataGrid BorderThickness="2" BorderBrush="{StaticResource CommonBoarder}" x:Name="dataTable"
+ Style="{StaticResource DefaultDataGrid}"
+ SelectionUnit="CellOrRowHeader"
+ SelectionMode="Extended"
+ pu:DataGridHelper.CellSelectedBackground="{StaticResource PrimaryColor}"
+ PreviewMouseLeftButtonDown="dataTable_PreviewMouseLeftButtonDown">
<DataGrid.Columns>
- <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn Header="#" IsReadOnly="True" 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 Binding="{Binding Code}" Header="鑿滃崟缂栧彿" />
- <DataGridTextColumn Binding="{Binding Name}" Header="鑿滃崟鍚嶇О" />
- <DataGridTextColumn Binding="{Binding Level}" Header="绛夌骇" />
- <DataGridTextColumn Binding="{Binding Type}" Header="绫诲瀷" />
- <DataGridTextColumn Binding="{Binding Name}" Header="鑿滃崟鍚嶇О" />
- <DataGridTextColumn Binding="{Binding ParentCode}" Header="鐖惰彍鍗曠紪鍙�" />
- <DataGridTextColumn Binding="{Binding ParentName}" Header="鐖惰彍鍗曞悕绉�" />
- <DataGridTextColumn Width="*" Binding="{Binding DllPath}" Header="Dll璺緞" />
- <DataGridTextColumn Width="*" Binding="{Binding ClassName}" Header="绫诲悕" />
- <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <Button x:Name="editBtn" Style="{StaticResource LinkButton}"
- Margin="0,0,10,0"
- Click="Button_Click"
- DataContext="{Binding }">缂栬緫</Button>
- <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
- DataContext="{Binding }"
- Click="Button_Click">鍒犻櫎</Button>
- </StackPanel>
-
- <DataTemplate.Triggers>
- <DataTrigger Binding="{Binding Path=IsMouseOver,
- RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
- Value="True">
- <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
- </DataTrigger>
- <DataTrigger Binding="{Binding Path=IsSelected,
- RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
- Value="True">
- <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
- </DataTrigger>
- </DataTemplate.Triggers>
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
- </StackPanel>
- </Border>
-
- <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
- <StackPanel>
- <DockPanel Margin="0,0,0,10" >
- <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
- VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟缁撴瀯"/>
- </DockPanel>
-
- <TreeView x:Name="treeViewer" Style="{StaticResource DefaultTreeView}" ItemsSource="{Binding TreeDataSource}">
- <TreeView.ItemTemplate>
- <HierarchicalDataTemplate ItemsSource="{Binding Children}">
- <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
- <Image Width="{StaticResource ContentFontSize}" Height="{StaticResource ContentFontSize}" Margin="5"
- Source="{Binding IconPath,Converter={StaticResource path2Image},Mode=OneWay}"/>
- <TextBlock VerticalAlignment="Center" FontSize="{StaticResource ContentFontSize}" Text="{Binding Name}"/>
- </StackPanel>
- </HierarchicalDataTemplate>
- </TreeView.ItemTemplate>
- </TreeView>
- </StackPanel>
- </Border>
- </Grid>
+ </DockPanel>
+ </Grid>
+ </Border>
</hb:PluginControl>
--
Gitblit v1.9.1