UCSingleGrid.xaml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. <UserControl x:Class="MeterVision.Single.UCSingleGrid"
  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.Single"
  7. mc:Ignorable="d"
  8. Background="White"
  9. BorderThickness="0"
  10. Padding="5"
  11. BorderBrush="#E0E0E0"
  12. AllowDrop="True"
  13. Drop="UserControl_Drop"
  14. DragEnter="UserControl_DragEnter"
  15. PreviewDragOver="UserControl_PreviewDragOver"
  16. d:DesignHeight="800" d:DesignWidth="1000">
  17. <UserControl.Resources>
  18. <Style TargetType="ContextMenu">
  19. <Setter Property="Background" Value="White"/>
  20. <Setter Property="BorderBrush" Value="#DDDDDD"/>
  21. <Setter Property="BorderThickness" Value="1"/>
  22. </Style>
  23. <Style TargetType="MenuItem">
  24. <Setter Property="Padding" Value="5,2"/>
  25. <!--<Setter Property="Icon" Value="{StaticResource DefaultIcon}"/>-->
  26. </Style>
  27. </UserControl.Resources>
  28. <Grid>
  29. <DataGrid Name="dgSingle" GridLinesVisibility="All" HorizontalGridLinesBrush="#D3D3D3" VerticalGridLinesBrush="#D3D3D3" RowHeight="100" BorderBrush="#D3D3D3"
  30. HeadersVisibility="Column" SelectionMode="Single" SelectionUnit="FullRow" HorizontalScrollBarVisibility="Auto" CanUserResizeColumns="False"
  31. FrozenColumnCount="2"
  32. SelectedItem="{Binding SelectedSingleDetailItem,Mode=TwoWay}"
  33. AutoGenerateColumns="False" CanUserAddRows="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White">
  34. <DataGrid.Resources>
  35. <Style TargetType="DataGridColumnHeader">
  36. <Setter Property="Height" Value="40" />
  37. <!--Setter Property="Background" Value="White" /-->
  38. <Setter Property="Foreground" Value="Black" />
  39. <Setter Property="FontSize" Value="13px" />
  40. <Setter Property="FontWeight" Value="Bold" />
  41. <Setter Property="BorderBrush" Value="#D3D3D3" />
  42. <Setter Property="BorderThickness" Value="0,0,1,1" />
  43. <Setter Property="HorizontalContentAlignment" Value="Center" />
  44. </Style>
  45. <!-- 自定义行的选中样式 -->
  46. <Style TargetType="DataGridRow">
  47. <Style.Triggers>
  48. <!-- 当行被选中时 -->
  49. <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
  50. <!-- 设置选中行的背景色 -->
  51. <Setter Property="Background" Value="AliceBlue"/>
  52. <!-- 设置选中行的前景色 --><!--
  53. <Setter Property="Foreground" Value="Black"/>
  54. --><!-- 设置选中行的边框 --><!--
  55. <Setter Property="BorderBrush" Value="Red"/>
  56. <Setter Property="BorderThickness" Value="0"/>
  57. --><!-- 可以进一步增加效果,比如字体加粗 --><!--
  58. <Setter Property="FontWeight" Value="Bold"/>-->
  59. </DataTrigger>
  60. </Style.Triggers>
  61. </Style>
  62. <!-- 自定义选中单元格的背景色 -->
  63. <Style TargetType="DataGridCell">
  64. <Style.Triggers>
  65. <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
  66. <!-- 设置选中单元格的背景色 -->
  67. <Setter Property="Background" Value="AliceBlue"/>
  68. <Setter Property="BorderBrush" Value="Transparent" />
  69. <!-- 设置选中单元格的前景色 -->
  70. <!--<Setter Property="Foreground" Value="Black"/>-->
  71. </DataTrigger>
  72. </Style.Triggers>
  73. </Style>
  74. </DataGrid.Resources>
  75. <DataGrid.ContextMenu>
  76. <ContextMenu>
  77. <MenuItem x:Name="miViewLog" Header="查看日志" Click="MiViewLog_Click" >
  78. <MenuItem.Icon>
  79. <Image Source="pack://application:,,,/MeterVision;component/Assest/mi_log.png" Width="16" Height="16"/>
  80. </MenuItem.Icon>
  81. </MenuItem>
  82. <Separator/>
  83. <MenuItem x:Name="miMemo" Header="添加备注" Click="MiAddMemo_Click">
  84. <MenuItem.Icon>
  85. <Image Source="pack://application:,,,/MeterVision;component/Assest/memo.png" Width="16" Height="16"/>
  86. </MenuItem.Icon>
  87. </MenuItem>
  88. <Separator/>
  89. <MenuItem x:Name="miDelete" Header="删除行" Click="MiDelete_Click" >
  90. <MenuItem.Icon>
  91. <Image Source="pack://application:,,,/MeterVision;component/Assest/mi_delete.png" Width="16" Height="16"/>
  92. </MenuItem.Icon>
  93. </MenuItem>
  94. <Separator/>
  95. <MenuItem x:Name="miRecong" Header="重新识别" Click="MiRecong_Click">
  96. <MenuItem.Icon>
  97. <Image Source="pack://application:,,,/MeterVision;component/Assest/single_2.png" Width="16" Height="16"/>
  98. </MenuItem.Icon>
  99. </MenuItem>
  100. </ContextMenu>
  101. </DataGrid.ContextMenu>
  102. <DataGrid.Columns>
  103. <!--使用自定义模板-->
  104. <DataGridTemplateColumn Header="序号" Width="50">
  105. <DataGridTemplateColumn.CellTemplate>
  106. <DataTemplate>
  107. <TextBlock Text="{Binding Index}" FontSize="13px" Foreground="#000000" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  108. </DataTemplate>
  109. </DataGridTemplateColumn.CellTemplate>
  110. </DataGridTemplateColumn>
  111. <DataGridTemplateColumn Header="原始图片" Width="120">
  112. <DataGridTemplateColumn.CellTemplate>
  113. <DataTemplate>
  114. <Image Source="{Binding SrcImage}" PreviewMouseLeftButtonDown="SrcImage_PreviewMouseLeftButtonDown"
  115. ToolTip="{Binding SrcImage}"
  116. VerticalAlignment="Center" HorizontalAlignment="Center" Margin="2,2,2,2"/>
  117. </DataTemplate>
  118. </DataGridTemplateColumn.CellTemplate>
  119. </DataGridTemplateColumn>
  120. <DataGridTemplateColumn Header="识别时间" Width="100">
  121. <DataGridTemplateColumn.CellTemplate>
  122. <DataTemplate>
  123. <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
  124. <TextBlock Text="{Binding RunTime_date}" FontSize="13px" Foreground="#000000" HorizontalAlignment="Center" Margin="0 0 0 5"/>
  125. <TextBlock Text="{Binding RunTime_time}" FontSize="14px" Foreground="#000000" HorizontalAlignment="Center"/>
  126. </StackPanel>
  127. </DataTemplate>
  128. </DataGridTemplateColumn.CellTemplate>
  129. </DataGridTemplateColumn>
  130. <DataGridTemplateColumn Header="结果图片" Width="120">
  131. <DataGridTemplateColumn.CellTemplate>
  132. <DataTemplate>
  133. <Image Source="{Binding DstImage}" PreviewMouseLeftButtonDown ="DstImage_PreviewMouseLeftButtonDown"
  134. ToolTip="{Binding DstImage}"
  135. Visibility="{Binding ResultVisiable}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="2,2,2,2"/>
  136. </DataTemplate>
  137. </DataGridTemplateColumn.CellTemplate>
  138. </DataGridTemplateColumn>
  139. <DataGridTemplateColumn Header="识别结果" Width="150">
  140. <DataGridTemplateColumn.CellTemplate>
  141. <DataTemplate>
  142. <StackPanel Visibility="{Binding ResultVisiable}" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="5 0 0 0">
  143. <Grid Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 5">
  144. <!-- Ellipse: 圆形 -->
  145. <Ellipse x:Name="circle" HorizontalAlignment="Center" VerticalAlignment="Center" Width="18" Height="18">
  146. <Ellipse.Fill>
  147. <SolidColorBrush Color="{Binding ResultTypeColor}"/>
  148. <!--颜色值要做动态绑定-->
  149. </Ellipse.Fill>
  150. </Ellipse>
  151. <!-- TextBlock: 显示文本 -->
  152. <TextBlock Text="{Binding ResultType}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="13px" Foreground="White" />
  153. </Grid>
  154. <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0 0 0 5">
  155. <TextBlock Text="结果:" FontSize="13px" Foreground="#666666" Padding="5 0 0 0"/>
  156. <TextBlock Text="{Binding FinalValue}" FontSize="14px" Foreground="#000000" />
  157. </StackPanel>
  158. <StackPanel Orientation="Horizontal">
  159. <TextBlock Text="原始:" FontSize="13px" Foreground="#666666" Padding="5 0 0 0" />
  160. <TextBlock Text="{Binding RawValue}" FontSize="14px" Foreground="#000000" />
  161. </StackPanel>
  162. </StackPanel>
  163. </DataTemplate>
  164. </DataGridTemplateColumn.CellTemplate>
  165. </DataGridTemplateColumn>
  166. <DataGridTemplateColumn Header="调试信息" Width="320">
  167. <DataGridTemplateColumn.CellTemplate>
  168. <DataTemplate>
  169. <Grid Visibility="{Binding ResultVisiable}" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="5 0 5 0">
  170. <!-- 定义行和列 -->
  171. <Grid.RowDefinitions>
  172. <RowDefinition Height="Auto"/>
  173. <RowDefinition Height="Auto"/>
  174. <RowDefinition Height="Auto"/>
  175. </Grid.RowDefinitions>
  176. <Grid.ColumnDefinitions>
  177. <ColumnDefinition Width="*"/>
  178. <ColumnDefinition Width="*"/>
  179. <ColumnDefinition Width="*"/>
  180. <ColumnDefinition Width="*"/>
  181. <ColumnDefinition Width="*"/>
  182. <ColumnDefinition Width="*"/>
  183. <ColumnDefinition Width="*"/>
  184. <ColumnDefinition Width="*"/>
  185. <ColumnDefinition Width="*"/>
  186. <ColumnDefinition Width="*"/>
  187. <ColumnDefinition Width="*"/>
  188. <ColumnDefinition Width="*"/>
  189. </Grid.ColumnDefinitions>
  190. <!-- 第一行 -->
  191. <Border Grid.Row="0" Grid.Column="0" BorderBrush="#D3D3D3" BorderThickness="1 1 1 1" Padding="0 2">
  192. <TextBlock Text="{Binding AI_result_array[0]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px" />
  193. </Border>
  194. <Border Grid.Row="0" Grid.Column="1" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  195. <TextBlock Text="{Binding AI_result_array[1]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  196. </Border>
  197. <Border Grid.Row="0" Grid.Column="2" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  198. <TextBlock Text="{Binding AI_result_array[2]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  199. </Border>
  200. <Border Grid.Row="0" Grid.Column="3" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  201. <TextBlock Text="{Binding AI_result_array[3]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  202. </Border>
  203. <Border Grid.Row="0" Grid.Column="4" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  204. <TextBlock Text="{Binding AI_result_array[4]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  205. </Border>
  206. <Border Grid.Row="0" Grid.Column="5" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  207. <TextBlock Text="{Binding AI_result_array[5]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  208. </Border>
  209. <Border Grid.Row="0" Grid.Column="6" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  210. <TextBlock Text="{Binding AI_result_array[6]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  211. </Border>
  212. <Border Grid.Row="0" Grid.Column="7" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  213. <TextBlock Text="{Binding AI_result_array[7]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  214. </Border>
  215. <Border Grid.Row="0" Grid.Column="8" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  216. <TextBlock Text="{Binding AI_result_array[8]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  217. </Border>
  218. <Border Grid.Row="0" Grid.Column="9" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  219. <TextBlock Text="{Binding AI_result_array[9]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  220. </Border>
  221. <Border Grid.Row="0" Grid.Column="10" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  222. <TextBlock Text="{Binding AI_result_array[10]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  223. </Border>
  224. <Border Grid.Row="0" Grid.Column="11" BorderBrush="#D3D3D3" BorderThickness="0 1 1 1" Padding="0 2">
  225. <TextBlock Text="{Binding AI_result_array[11]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  226. </Border>
  227. <!-- 第二行 -->
  228. <Border Grid.Row="1" Grid.Column="0" BorderBrush="#D3D3D3" BorderThickness="1 0 1 1" Padding="0 2">
  229. <TextBlock Text="{Binding AI_result_array[12]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  230. </Border>
  231. <Border Grid.Row="1" Grid.Column="1" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  232. <TextBlock Text="{Binding AI_result_array[13]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  233. </Border>
  234. <Border Grid.Row="1" Grid.Column="2" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  235. <TextBlock Text="{Binding AI_result_array[14]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  236. </Border>
  237. <Border Grid.Row="1" Grid.Column="3" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  238. <TextBlock Text="{Binding AI_result_array[15]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  239. </Border>
  240. <Border Grid.Row="1" Grid.Column="4" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  241. <TextBlock Text="{Binding AI_result_array[16]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  242. </Border>
  243. <Border Grid.Row="1" Grid.Column="5" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  244. <TextBlock Text="{Binding AI_result_array[17]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  245. </Border>
  246. <Border Grid.Row="1" Grid.Column="6" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  247. <TextBlock Text="{Binding AI_result_array[18]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  248. </Border>
  249. <Border Grid.Row="1" Grid.Column="7" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  250. <TextBlock Text="{Binding AI_result_array[19]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  251. </Border>
  252. <Border Grid.Row="1" Grid.Column="8" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  253. <TextBlock Text="{Binding AI_result_array[20]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  254. </Border>
  255. <Border Grid.Row="1" Grid.Column="9" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  256. <TextBlock Text="{Binding AI_result_array[21]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  257. </Border>
  258. <Border Grid.Row="1" Grid.Column="10" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  259. <TextBlock Text="{Binding AI_result_array[22]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  260. </Border>
  261. <Border Grid.Row="1" Grid.Column="11" BorderBrush="#D3D3D3" BorderThickness="0 0 1 1" Padding="0 2">
  262. <TextBlock Text="{Binding AI_result_array[23]}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#333333" FontSize="13px"/>
  263. </Border>
  264. <StackPanel Grid.Row="2" Grid.ColumnSpan="12">
  265. <!--<TextBlock FontSize="14px" HorizontalAlignment="Left" Margin="5 5 0 0">
  266. <Run Text="AI版本:" Foreground="#666666"/>
  267. <Run Text="{Binding AiVer}" Foreground="#000000" FontSize="14px"/>
  268. </TextBlock>-->
  269. <TextBlock FontSize="14px" HorizontalAlignment="Left" Margin="5 10 0 0"
  270. Text="{Binding AiVer, StringFormat='AI版本: {0}'}" Foreground="#000000"/>
  271. </StackPanel>
  272. </Grid>
  273. </DataTemplate>
  274. </DataGridTemplateColumn.CellTemplate>
  275. </DataGridTemplateColumn>
  276. <!--日志按钮-->
  277. <DataGridTemplateColumn Header="操作" Width="80">
  278. <DataGridTemplateColumn.CellTemplate>
  279. <DataTemplate>
  280. <StackPanel Orientation="Vertical" VerticalAlignment="Center">
  281. <Button x:Name="btnLogViewer" Width="Auto" FontSize="13px" Content="日志" Foreground="#2196F3" VerticalAlignment="Center"
  282. Click="BtnLogViewer_Click"
  283. BorderBrush="Transparent" BorderThickness="0 0 0 0" Background="Transparent" Margin="0 0 0 10" />
  284. <Button x:Name="btnDelDetailItem" Width="Auto" FontSize="13px" Content="删除" Foreground="#2196F3" VerticalAlignment="Center"
  285. BorderBrush="Transparent" BorderThickness="0 0 0 0" Background="Transparent" Margin="0 0 0 10"
  286. Click="BtnDelDetailItem_Click" />
  287. <Button x:Name="btnRecongDetailItem" Width="Auto" FontSize="13px" Content="识别" Foreground="#2196F3" VerticalAlignment="Center"
  288. BorderBrush="Transparent" BorderThickness="0 0 0 0" Background="Transparent" Margin="0 0 0 0"
  289. Click="BtnRecongDetailItem_Click" />
  290. </StackPanel>
  291. </DataTemplate>
  292. </DataGridTemplateColumn.CellTemplate>
  293. </DataGridTemplateColumn>
  294. <!--<DataGridTemplateColumn Header="备注" Width="200">
  295. <DataGridTemplateColumn.CellTemplate>
  296. <DataTemplate>
  297. <Border Background="Transparent" Padding="5" PreviewMouseLeftButtonDown="Memo_PreviewMouseLeftButtonDown">
  298. <TextBlock FontSize="14px" Text="{Binding Memo}" TextWrapping="Wrap"
  299. Foreground="#000000" Margin="0" HorizontalAlignment="Left"/>
  300. </Border>
  301. </DataTemplate>
  302. </DataGridTemplateColumn.CellTemplate>
  303. </DataGridTemplateColumn>-->
  304. <DataGridTemplateColumn Header="识别信息" Width="140">
  305. <DataGridTemplateColumn.CellTemplate>
  306. <DataTemplate>
  307. <StackPanel Visibility="{Binding ResultVisiable}" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5,0,0,0">
  308. <TextBlock FontSize="14px" Text="{Binding MeterTypeName}"
  309. Foreground="#000000" Margin="0 0 0 5" HorizontalAlignment="Center"/>
  310. <TextBlock FontSize="14px" Text="{Binding NumCountName}"
  311. Foreground="#000000" Margin="0 0 0 5" HorizontalAlignment="Center" />
  312. <TextBlock FontSize="14px" HorizontalAlignment="Center" Margin="0 0 0 5"
  313. Text="{Binding LastUnitName,Mode=OneWay}" Foreground="#000000"/>
  314. </StackPanel>
  315. </DataTemplate>
  316. </DataGridTemplateColumn.CellTemplate>
  317. </DataGridTemplateColumn>
  318. </DataGrid.Columns>
  319. </DataGrid>
  320. </Grid>
  321. </UserControl>