UCCompMain.xaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. <UserControl x:Class="MeterVision.Patch.UCCompMain"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:MeterVision.Patch"
  7. xmlns:local2="clr-namespace:MeterVision"
  8. xmlns:zdfflatui="clr-namespace:ZdfFlatUI;assembly=WPF.UI"
  9. mc:Ignorable="d"
  10. Padding="5,2,5,5"
  11. Background="WhiteSmoke"
  12. d:DesignHeight="800" d:DesignWidth="1366">
  13. <UserControl.Resources>
  14. <Style TargetType="ContextMenu">
  15. <Setter Property="Background" Value="White"/>
  16. <Setter Property="BorderBrush" Value="#DDDDDD"/>
  17. <Setter Property="BorderThickness" Value="1"/>
  18. </Style>
  19. <Style TargetType="MenuItem">
  20. <Setter Property="Padding" Value="5,2"/>
  21. </Style>
  22. </UserControl.Resources>
  23. <!--整体布局-->
  24. <Grid>
  25. <Grid.ColumnDefinitions>
  26. <ColumnDefinition Width="450" x:Name="colLeft" />
  27. <ColumnDefinition Width="*" />
  28. </Grid.ColumnDefinitions>
  29. <!--左侧-->
  30. <Border Grid.Column="0" BorderBrush="#C0C0C0" BorderThickness="0 0 1 0">
  31. <Grid>
  32. <Grid.RowDefinitions>
  33. <RowDefinition Height="40" /> <!--上部功能区-->
  34. <RowDefinition Height="*" /> <!--中间列表区-->
  35. <RowDefinition Height="40" /> <!--下部翻页区-->
  36. </Grid.RowDefinitions>
  37. <!--上部功能按钮区域-->
  38. <Grid Grid.Row="0" Margin="0">
  39. <Grid.ColumnDefinitions>
  40. <ColumnDefinition Width="Auto" />
  41. <ColumnDefinition Width="Auto" />
  42. <ColumnDefinition Width="*" />
  43. </Grid.ColumnDefinitions>
  44. <zdfflatui:FlatButton Grid.Column="0" x:Name="btnAddComp" HorizontalAlignment="Center"
  45. Background="#4CAF50" Content="新建比较"
  46. Click="BtnAddComp_Click" Foreground="White"
  47. Width="80" Height="28" FontSize="13" Margin="0 0 5 0" />
  48. <zdfflatui:FlatButton Grid.Column="1" x:Name="btnDelComp" HorizontalAlignment="Center"
  49. Background="#FF4C4C" Content="删除比较"
  50. Click="BtnDelComp_Click" Foreground="White"
  51. Width="80" Height="28" FontSize="13" Margin="0 0 5 0" />
  52. <zdfflatui:FlatButton Grid.Column="2" x:Name="btnRefresh" HorizontalAlignment="Right"
  53. Background="#2196F3" Foreground="White" Content="🔄"
  54. ToolTip="刷新数据列表"
  55. Click="BtnRefresh_Click" Margin="0 0 10 0"
  56. Width="30" Height="28" FontSize="20px" />
  57. </Grid>
  58. <!--中间DataGrid列表区域-->
  59. <Border Grid.Row="1" BorderThickness="0" BorderBrush="#C0C0C0" Margin="0 0 5 0">
  60. <!--嵌套一个DataGrid-->
  61. <DataGrid x:Name="dgComp" GridLinesVisibility="All" HorizontalGridLinesBrush="Transparent" VerticalGridLinesBrush="Transparent"
  62. BorderBrush="#D3D3D3" HeadersVisibility="Column" SelectionMode="Single" SelectionUnit="FullRow"
  63. HorizontalScrollBarVisibility="Disabled" CanUserReorderColumns="False" RowHeight="NaN"
  64. SelectedItem="{Binding SelectedCompItem,Mode=TwoWay}"
  65. AutoGenerateColumns="False" CanUserAddRows="False" HorizontalAlignment="Stretch"
  66. VerticalAlignment="Stretch" Background="White" Padding="5" Margin="0">
  67. <DataGrid.Resources>
  68. <Style TargetType="DataGridColumnHeader">
  69. <Setter Property="Height" Value="40" />
  70. <!--Setter Property="Background" Value="White" /-->
  71. <Setter Property="Foreground" Value="Black" />
  72. <Setter Property="FontSize" Value="13px" />
  73. <Setter Property="FontWeight" Value="Bold" />
  74. <Setter Property="BorderBrush" Value="#D3D3D3" />
  75. <Setter Property="BorderThickness" Value="0,0,0,0" />
  76. <Setter Property="HorizontalContentAlignment" Value="Center" />
  77. <Setter Property="Margin" Value="0 0 0 0" />
  78. <Setter Property="Padding" Value="5" />
  79. </Style>
  80. <!-- 自定义行的选中样式 -->
  81. <Style TargetType="DataGridRow">
  82. <Style.Triggers>
  83. <!-- 当行被选中时 -->
  84. <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
  85. <!-- 设置选中行的背景色 -->
  86. <Setter Property="Background" Value="Transparent"/>
  87. <Setter Property="BorderThickness" Value="1" />
  88. <Setter Property="BorderBrush" Value="CornflowerBlue" />
  89. </DataTrigger>
  90. </Style.Triggers>
  91. <Setter Property="Margin" Value="0,0,5,5"/>
  92. <Setter Property="BorderThickness" Value="1" />
  93. <Setter Property="BorderBrush" Value="CadetBlue" />
  94. <!-- 或者使用 Padding 属性,取决于你想要的效果 -->
  95. <!-- <Setter Property="Padding" Value="0,5,0,5"/> -->
  96. </Style>
  97. <!-- 自定义选中单元格的背景色 -->
  98. <Style TargetType="DataGridCell">
  99. <Style.Triggers>
  100. <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
  101. <!-- 设置选中单元格的背景色 -->
  102. <Setter Property="Background" Value="AliceBlue"/>
  103. <Setter Property="BorderBrush" Value="Red" />
  104. <!-- 设置选中单元格的前景色 -->
  105. <!--<Setter Property="Foreground" Value="Black"/>-->
  106. </DataTrigger>
  107. </Style.Triggers>
  108. <!--<Setter Property="Foreground" Value="White" />-->
  109. <Setter Property="BorderBrush" Value="SeaGreen" />
  110. <Setter Property="BorderThickness" Value="0" />
  111. </Style>
  112. </DataGrid.Resources>
  113. <DataGrid.ContextMenu>
  114. <ContextMenu>
  115. <MenuItem x:Name="miDeletePatch" Header="删除比较" Click="MiDeleteCompr_Click" >
  116. <MenuItem.Icon>
  117. <Image Source="pack://application:,,,/MeterVision;component/Assest/mi_delete.png" Width="16" Height="16"/>
  118. </MenuItem.Icon>
  119. </MenuItem>
  120. </ContextMenu>
  121. </DataGrid.ContextMenu>
  122. <!--唯一的一列-->
  123. <DataGrid.Columns>
  124. <DataGridTemplateColumn Width="*">
  125. <DataGridTemplateColumn.Header>
  126. <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=TotalCompRecords,
  127. StringFormat='比较列表 (共 {0} 个)',Mode=OneWay}" />
  128. </DataGridTemplateColumn.Header>
  129. <DataGridTemplateColumn.CellTemplate>
  130. <DataTemplate>
  131. <StackPanel Orientation="Vertical" VerticalAlignment="Stretch" Margin="5 5 10 5">
  132. <StackPanel Orientation="Horizontal" Margin="0 0 0 5">
  133. <TextBlock Text="{Binding Index,StringFormat='{}{0}.'}" FontSize="14px" Foreground="#000000" />
  134. </StackPanel>
  135. <Border HorizontalAlignment="Stretch" BorderBrush="#D3D3D3" BorderThickness="0 0 0 1" Padding="0" Margin="0">
  136. <Grid>
  137. <Grid.ColumnDefinitions>
  138. <ColumnDefinition Width="*" />
  139. <ColumnDefinition Width="40" />
  140. <ColumnDefinition Width="*" />
  141. </Grid.ColumnDefinitions>
  142. <Grid.RowDefinitions>
  143. <RowDefinition Height="Auto" />
  144. <RowDefinition Height="Auto" />
  145. <RowDefinition Height="Auto" />
  146. </Grid.RowDefinitions>
  147. <StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal">
  148. <TextBlock Text="新:" FontSize="14px" Foreground="#666666" />
  149. <TextBlock Text="{Binding NPatchName}" FontSize="14px" Foreground="#000000" TextWrapping="Wrap"/>
  150. </StackPanel>
  151. <StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" Margin="0 5 0 5">
  152. <TextBlock Text="{Binding NPatchTimeName}" FontSize="14px" Foreground="#666666" />
  153. </StackPanel>
  154. <StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" Margin="0 5 0 5">
  155. <TextBlock Text="正确率:" FontSize="14px" Foreground="#666666" />
  156. <TextBlock FontSize="14px" Foreground="#000000">
  157. <TextBlock.Text>
  158. <MultiBinding StringFormat="{}{0}/{1} ({2:p1})">
  159. <Binding Path="NPatchEqualCount" />
  160. <Binding Path="NPatchDetailCount"/>
  161. <Binding Path="NPatchEqualRate"/>
  162. </MultiBinding>
  163. </TextBlock.Text>
  164. </TextBlock>
  165. </StackPanel>
  166. <StackPanel Grid.Column="1" Grid.RowSpan="3" Orientation="Horizontal">
  167. <TextBlock Text="VS" HorizontalAlignment="Center" VerticalAlignment="Center"
  168. FontSize="14px" Foreground="Red" />
  169. </StackPanel>
  170. <StackPanel Grid.Row="0" Grid.Column="2" Orientation="Horizontal">
  171. <TextBlock Text="旧:" FontSize="14px" Foreground="#666666" />
  172. <TextBlock Text="{Binding OPatchName}" FontSize="14px" Foreground="#000000" TextWrapping="Wrap"/>
  173. </StackPanel>
  174. <StackPanel Grid.Row="1" Grid.Column="2" Orientation="Horizontal">
  175. <TextBlock Text="{Binding OPatchTimeName}" FontSize="14px" Foreground="#666666" Margin="0 5 0 5"/>
  176. </StackPanel>
  177. <StackPanel Grid.Row="2" Grid.Column="2" Orientation="Horizontal" Margin="0 5 0 5">
  178. <TextBlock Text="正确率:" FontSize="14px" Foreground="#666666" />
  179. <TextBlock FontSize="14px" Foreground="#000000">
  180. <TextBlock.Text>
  181. <MultiBinding StringFormat="{}{0}/{1} ({2:p1})">
  182. <Binding Path="OPatchEqualCount" />
  183. <Binding Path="OPatchDetailCount"/>
  184. <Binding Path="OPatchEqualRate"/>
  185. </MultiBinding>
  186. </TextBlock.Text>
  187. </TextBlock>
  188. </StackPanel>
  189. </Grid>
  190. </Border>
  191. <!--来自模板-->
  192. <StackPanel Orientation="Horizontal" Margin="0 5 0 5">
  193. <TextBlock Text="来自模板:" FontSize="14px" Foreground="#666666" />
  194. <TextBlock Text="{Binding StandName}" FontSize="14px" Foreground="#000000" />
  195. <TextBlock Text="{Binding StandCount,StringFormat='[{0}]'}" FontSize="14px" Foreground="#000000" />
  196. </StackPanel>
  197. </StackPanel>
  198. </DataTemplate>
  199. </DataGridTemplateColumn.CellTemplate>
  200. </DataGridTemplateColumn>
  201. </DataGrid.Columns>
  202. </DataGrid>
  203. </Border>
  204. <!--下部翻页控制区-->
  205. <Grid Grid.Row="2" Background="WhiteSmoke">
  206. <StackPanel Grid.Row="2" Height="35" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0">
  207. <Button x:Name="btnPatchPrePage" Content="上一页" Width="55" Margin="5" FontSize="13px" Click="BtnCompPrePage_Click"/>
  208. <!--<TextBlock Text="2/10" Margin="5" FontSize="13px" VerticalAlignment="Center"/>-->
  209. <StackPanel Orientation="Vertical" Margin="5" VerticalAlignment="Center">
  210. <!--<TextBlock Text="{Binding TotalPatchRecords,StringFormat='共 {0} 条'}" HorizontalAlignment="Center" FontSize="13px"/>-->
  211. <TextBlock Margin="0" FontSize="13px" VerticalAlignment="Center" HorizontalAlignment="Center">
  212. <TextBlock.Text>
  213. <!--<MultiBinding StringFormat="{}{0}/{1}页">-->
  214. <MultiBinding StringFormat="第{0}/{1}页">
  215. <Binding Path="PatchPage.PageNumber"/>
  216. <Binding Path="PatchPage.PageCount"/>
  217. </MultiBinding>
  218. </TextBlock.Text>
  219. </TextBlock>
  220. </StackPanel>
  221. <Button x:Name="btnPatchNextPage" Content="下一页" Width="55" Margin="5" FontSize="13px" Click="BtnCompNextPage_Click"/>
  222. </StackPanel>
  223. </Grid>
  224. </Grid>
  225. </Border>
  226. <!--右侧-->
  227. <Border Grid.Column="1" BorderBrush="#D3D3D3" BorderThickness="0 0 1 0" Padding="0 0 5 0">
  228. <Grid>
  229. <Grid.RowDefinitions>
  230. <RowDefinition Height="40" />
  231. <RowDefinition Height="*" />
  232. <RowDefinition Height="40" />
  233. </Grid.RowDefinitions>
  234. <!--右上功能按钮区-->
  235. <Grid Grid.Row="0">
  236. <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="5 0 2 0">
  237. <Button Content="◀️" x:Name="btnLeftCtl" FontSize="20px" Width="28" Height="28" Visibility="Visible"
  238. Click="BtnLeftCtl_Click"
  239. Foreground="White" Background="#333333" Margin="0 0 5 0" />
  240. <TextBlock x:Name="txtCompName" Text="请选择左侧比较" FontSize="14px" FontWeight="Bold" VerticalAlignment="Center" />
  241. <!--<TextBlock Text="[2024-10-23 10:25:39]" FontSize="13px" VerticalAlignment="Center" Margin="2 0 0 0"/>-->
  242. </StackPanel>
  243. <StackPanel x:Name="pnlDetailFunc" Orientation="Horizontal" HorizontalAlignment="Right">
  244. <TextBlock Text="筛选条件" VerticalAlignment="Center" Margin="0 0 5 0"
  245. Foreground="Black" FontSize="14px" FontWeight="Normal"/>
  246. <ComboBox Grid.Column="1" x:Name="cmbRunFlag" FontSize="13px" Foreground="#000000"
  247. DisplayMemberPath="Value" SelectedValuePath="Key" Width="110"
  248. ItemsSource="{Binding CompFindTypeKVs}"
  249. SelectedValue="{Binding SelectedCompFindType,Mode=TwoWay}"
  250. Margin="0,0,10,0" Padding="4" VerticalAlignment="Center"/>
  251. <!--ItemsSource="{x:Static local:ConfigItem.RulerDigitList}"-->
  252. <!--<zdfflatui:FlatButton x:Name="btnStartTask" HorizontalAlignment="Right"
  253. Click="BtnStartTask_Click"
  254. Background="#2196F3" Content="开始批量任务" Foreground="White"
  255. Width="100" Height="28" FontSize="13" Margin="0 0 5 0" />-->
  256. <zdfflatui:FlatButton Grid.Column="2" x:Name="btnRefreshDetail" HorizontalAlignment="Center"
  257. Background="#2196F3" Foreground="White" Content="🔄"
  258. ToolTip="刷新数据列表"
  259. Click="BtnRefreshDetail_Click" Margin="0 0 10 0"
  260. Width="30" Height="28" FontSize="20px" />
  261. <!--<Button Content="▶️" x:Name="btnRightCtl" FontSize="20px" Width="28" Height="28" Visibility="Visible"
  262. Click="BtnRightCtl_Click"
  263. Foreground="White" Background="#333333" Margin="0 0 5 0" />-->
  264. </StackPanel>
  265. </Grid>
  266. <!--中间比较列表DataGrid-->
  267. <Border Grid.Row="1">
  268. <local:UCCompGrid x:Name="ucCompGird" Padding="5 5 5 5" />
  269. </Border>
  270. <!--底部分页控件-->
  271. <StackPanel Grid.Row="2" Height="35" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0">
  272. <!--<TextBlock Text="共 100 条数据" Margin="5" VerticalAlignment="Center" FontSize="13px"/>-->
  273. <TextBlock Text="{Binding ElementName=ucCompGird,Path=TotalRecords,StringFormat='共 {0} 条数据'}" Margin="5" VerticalAlignment="Center" FontSize="13px"/>
  274. <ComboBox Width="55" Margin="5" FontSize="13px"
  275. ItemsSource="{x:Static local2:ThisApp.PageSizeOptions}"
  276. SelectedValue="{Binding mConfigItem.PatchPageSize}"/>
  277. <Button x:Name="btnCompDetailFirstPage" Content="首页" Width="55" Margin="5" FontSize="13px" Click="BtnCompDetailFirstPage_Click"/>
  278. <Button x:Name="btnCompDetailPrePage" Content="上一页" Width="55" Margin="5" FontSize="13px" Click="BtnCompDetailPrePage_Click"/>
  279. <!--<TextBlock Text="第 2 页 / 共 10 页" Margin="5" FontSize="13px" VerticalAlignment="Center"/>-->
  280. <TextBlock Margin="5" FontSize="13px" VerticalAlignment="Center">
  281. <TextBlock.Text>
  282. <MultiBinding StringFormat="第 {0} 页 / 共 {1} 页">
  283. <Binding ElementName="ucCompGird" Path="PatchDetailPage.PageNumber"/>
  284. <Binding ElementName="ucCompGird" Path="PatchDetailPage.PageCount"/>
  285. </MultiBinding>
  286. </TextBlock.Text>
  287. </TextBlock>
  288. <Button x:Name="btnCompDetailNextPage" Content="下一页" Width="55" Margin="5" FontSize="13px" Click="BtnCompDetailNextPage_Click"/>
  289. <Button x:Name="btnCompDetailLastPage" Content="尾页" Width="55" Margin="5" FontSize="13px" Click="BtnCompDetailLastPage_Click"/>
  290. <TextBox x:Name="txtCompDetailPageNumber" Width="55" Margin="5" TextAlignment="Center" FontSize="13px"
  291. Text="{Binding ElementName=ucCompGird,Path=CompDetailPage.PageNumber,Mode=OneWay}"
  292. MaxLength="5" PreviewTextInput="TextBox_PreviewTextInput" VerticalContentAlignment="Center"/>
  293. <Button x:Name="btnCompDetailSpeciPage" Content="跳转" Width="55" Margin="5" FontSize="13px" Click="BtnCompDetailSpeciPage_Click"/>
  294. </StackPanel>
  295. </Grid>
  296. </Border>
  297. </Grid>
  298. </UserControl>