UCDeviceFinder.xaml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <UserControl x:Class="MV485.uc.UCDeviceFinder"
  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:MV485.uc"
  7. xmlns:zdfflatui="clr-namespace:ZdfFlatUI;assembly=WPF.UI"
  8. xmlns:local1="clr-namespace:MV485.helper"
  9. mc:Ignorable="d"
  10. Padding="5,2,5,5"
  11. Background="WhiteSmoke"
  12. Unloaded="UserControl_Unloaded"
  13. d:DesignHeight="800" d:DesignWidth="1366">
  14. <Grid>
  15. <Grid.RowDefinitions>
  16. <RowDefinition Height="Auto"/>
  17. <RowDefinition Height="*"/>
  18. <RowDefinition Height="Auto"/>
  19. </Grid.RowDefinitions>
  20. <!-- 控制面板 -->
  21. <StackPanel Orientation="Horizontal" Margin="10 10 10 5" >
  22. <TextBlock Text="端口号: " VerticalAlignment="Center" FontSize="14px" Margin="0 0 0 0" />
  23. <ComboBox x:Name="cmbPortNames" DisplayMemberPath="ModelName" SelectedValuePath="PortName"
  24. Width="180" Padding="5 0 0 0" Margin="2" FontSize="13px" VerticalContentAlignment="Center"/>
  25. <zdfflatui:FlatButton x:Name="btnRefreshPorts" HorizontalAlignment="Center" Background="#2196F3"
  26. Foreground="White" Content="🔄" ToolTip="刷新并重新加载串口列表"
  27. Click="btnRefreshPorts_Click" Margin="5 0 5 0" Width="30" Height="30" FontSize="20px" />
  28. <TextBlock Text="波特率: " VerticalAlignment="Center" FontSize="14" Margin="10 0 0 0" />
  29. <local1:MultiSelectComboBox x:Name="mcmbBaudrate" Width="100" Height="26" Padding="0" FontSize="13px" Margin="10 0 2 0"/>
  30. <TextBlock Text="地址范围: " VerticalAlignment="Center" FontSize="14" Margin="10 0 0 0" />
  31. <TextBox x:Name="txtMinId" Text="1" FontSize="13" Width="30" Margin="0 0 0 0"
  32. PreviewTextInput="TextBox_PreviewTextInput" MaxLength="3"
  33. TextAlignment="Left" VerticalContentAlignment="Center" Height="24" />
  34. <TextBlock Text="-" VerticalAlignment="Center" FontSize="14" Margin="5 0 5 0" />
  35. <TextBox x:Name="txtMaxId" FontSize="13" Text="255" Width="30" Margin="0 0 0 0"
  36. PreviewTextInput="TextBox_PreviewTextInput" MaxLength="3"
  37. TextAlignment="Left" VerticalContentAlignment="Center" Height="24" />
  38. <TextBlock Text="超时时间:" VerticalAlignment="Center" FontSize="14" Margin="10 0 0 0" />
  39. <TextBox x:Name="txtIdTimeout" FontSize="13" Text="100" Width="40" Margin="5 0 0 0"
  40. PreviewTextInput="TextBox_PreviewTextInput" MaxLength="4"
  41. TextAlignment="Left" VerticalContentAlignment="Center" Height="24" />
  42. <TextBlock Text="ms/每地址" VerticalAlignment="Center" FontSize="13" Margin="5 0 5 0" />
  43. <CheckBox x:Name="chkSearchSingle" Content="只搜索一台设备" IsChecked="True"
  44. VerticalAlignment="Center" FontSize="14" Margin="10 0 10 0" />
  45. <zdfflatui:FlatButton x:Name="btnSearch" Background="#4CAF50" Foreground="White" Content="开始搜索" Width="80"
  46. Click="btnSearch_Click" Padding="10 0 10 0" Height="28" FontSize="13" Margin="10 0 0 0" />
  47. <!--<Button Content="刷新串口" Click="btnRefreshPorts_Click" Margin="5" FontSize="14px" Padding="5 2 5 2" />-->
  48. <!--<Button x:Name="btnSearch" Content="开始搜索" Click="btnSearch_Click" Margin="5" FontSize="14px" Padding="5 2 5 2" />-->
  49. <!--<Button Content="清空日志" Click="btnClearLog_Click" Margin="5" FontSize="14px" Padding="5 2 5 2"/>-->
  50. <zdfflatui:FlatButton x:Name="btnClearLog" HorizontalAlignment="Center" Background="#FF4C4C" Foreground="White" Width="80"
  51. Content="清空日志" Click="btnClearLog_Click" Padding="10 0 10 0" Height="28" FontSize="13" Margin="10 0 0 0" />
  52. </StackPanel>
  53. <Border Grid.Row="1" Margin="10" BorderBrush="DarkGray" BorderThickness="1">
  54. <Grid Grid.Row="1">
  55. <Grid.ColumnDefinitions>
  56. <ColumnDefinition Width="*" />
  57. <ColumnDefinition Width="*" />
  58. </Grid.ColumnDefinitions>
  59. <Grid Grid.Column="0" Margin="10 0 10 10">
  60. <Grid.RowDefinitions>
  61. <RowDefinition Height="35" />
  62. <RowDefinition Height="*" />
  63. </Grid.RowDefinitions>
  64. <StackPanel Grid.Row="0" Orientation="Horizontal">
  65. <TextBlock Text="已搜索到的设备" FontSize="14" VerticalAlignment="Center" />
  66. </StackPanel>
  67. <ListView x:Name="lvResult" Grid.Row="1" Margin="0">
  68. <ListView.Resources>
  69. <!-- 设置标题字体样式 -->
  70. <Style TargetType="GridViewColumnHeader">
  71. <Setter Property="FontSize" Value="14"/>
  72. <Setter Property="Foreground" Value="DarkBlue"/>
  73. <Setter Property="Height" Value="26"/>
  74. <!-- 设置标题的高度 -->
  75. <Setter Property="VerticalAlignment" Value="Center"/>
  76. <!-- 设置垂直对齐方式 -->
  77. </Style>
  78. <!-- 设置内容字体样式 -->
  79. <Style TargetType="TextBlock">
  80. <Setter Property="FontSize" Value="13"/>
  81. <Setter Property="Foreground" Value="Black"/>
  82. </Style>
  83. </ListView.Resources>
  84. <ListView.View>
  85. <GridView>
  86. <GridViewColumn Header="端口号" Width="120" DisplayMemberBinding="{Binding PortName}"/>
  87. <GridViewColumn Header="波特率" Width="120" DisplayMemberBinding="{Binding BaudRate}"/>
  88. <GridViewColumn Header="485地址" Width="120" DisplayMemberBinding="{Binding DeviceAddress}"/>
  89. </GridView>
  90. </ListView.View>
  91. </ListView>
  92. </Grid>
  93. <Grid Grid.Column="1" Margin="10 0 10 10">
  94. <Grid.RowDefinitions>
  95. <RowDefinition Height="35" />
  96. <RowDefinition Height="*" />
  97. </Grid.RowDefinitions>
  98. <StackPanel Grid.Row="0" Orientation="Horizontal">
  99. <TextBlock Text="搜索日志" FontSize="14" VerticalAlignment="Center" />
  100. </StackPanel>
  101. <ListView x:Name="lvLogs" Grid.Row="1" Margin="0">
  102. <ListView.ContextMenu>
  103. <ContextMenu>
  104. <!--<MenuItem Header="复制消息" Click="MenuItem_CopyMessage_Click"/>-->
  105. <MenuItem x:Name="miDeleteSlave" Header="复制消息" FontSize="13" Foreground="Blue" Click="MenuItem_CopyMessage_Click" >
  106. <MenuItem.Icon>
  107. <Image Source="pack://application:,,,/MV485;component/Assest/copy.png" Width="16" Height="16"/>
  108. </MenuItem.Icon>
  109. </MenuItem>
  110. </ContextMenu>
  111. </ListView.ContextMenu>
  112. <ListView.Resources>
  113. <!-- 设置标题字体样式 -->
  114. <Style TargetType="GridViewColumnHeader">
  115. <Setter Property="FontSize" Value="14"/>
  116. <Setter Property="Foreground" Value="DarkBlue"/>
  117. <Setter Property="Height" Value="26"/>
  118. <!-- 设置标题的高度 -->
  119. <Setter Property="VerticalAlignment" Value="Center"/>
  120. <!-- 设置垂直对齐方式 -->
  121. </Style>
  122. <!-- 设置内容字体样式 -->
  123. <Style TargetType="TextBlock">
  124. <Setter Property="FontSize" Value="13"/>
  125. <Setter Property="Foreground" Value="Black"/>
  126. </Style>
  127. </ListView.Resources>
  128. <ListView.View>
  129. <GridView>
  130. <GridViewColumn Header="时间" Width="120" DisplayMemberBinding="{Binding Time}"/>
  131. <!--<GridViewColumn Header="消息" Width="600" DisplayMemberBinding="{Binding Message}"/>-->
  132. <!-- "消息" 列,支持换行 -->
  133. <GridViewColumn Header="消息" Width="400">
  134. <GridViewColumn.CellTemplate>
  135. <DataTemplate>
  136. <TextBlock Text="{Binding Message}" TextWrapping="Wrap"/>
  137. </DataTemplate>
  138. </GridViewColumn.CellTemplate>
  139. </GridViewColumn>
  140. </GridView>
  141. </ListView.View>
  142. </ListView>
  143. </Grid>
  144. </Grid>
  145. </Border>
  146. <!-- 结果显示 -->
  147. <TextBlock x:Name="txtResult" Grid.Row="2" FontSize="14" FontWeight="Bold" Margin="10" Foreground="Green" Visibility="Collapsed"/>
  148. </Grid>
  149. </UserControl>