Переглянути джерело

feat(ui): 将设备连接方式改为按钮点击

移除列表双击连接交互,新增操作列及连接按钮,优化用户体验。
yangkaixiang 1 місяць тому
батько
коміт
d8f88789c2

+ 12 - 2
windows/NetTool.Client/MainWindow.xaml

@@ -184,7 +184,7 @@
                                            FontSize="13"
                                            FontWeight="SemiBold"
                                            Foreground="#111827"
-                                           Text="发现设备(双击连接)" />
+                                           Text="发现设备" />
                                 <Button x:Name="SearchDevicesButton"
                                         Grid.Column="3"
                                         MinHeight="32"
@@ -215,7 +215,6 @@
                                        Style="{StaticResource DiscoveryListViewStyle}"
                                        ItemContainerStyle="{StaticResource DiscoveryListViewItemStyle}"
                                        LostKeyboardFocus="DiscoveredDevicesListView_OnLostKeyboardFocus"
-                                       MouseDoubleClick="DiscoveredDevicesListView_OnMouseDoubleClick"
                                        SizeChanged="DiscoveredDevicesListView_OnSizeChanged">
                                 <ListView.View>
                                     <GridView ColumnHeaderContainerStyle="{StaticResource DiscoveryColumnHeaderStyle}">
@@ -240,6 +239,17 @@
                                                 </DataTemplate>
                                             </GridViewColumn.CellTemplate>
                                         </GridViewColumn>
+                                        <GridViewColumn x:Name="DeviceActionColumn" Width="88" Header="操作">
+                                            <GridViewColumn.CellTemplate>
+                                                <DataTemplate>
+                                                    <Button MinHeight="26"
+                                                            Margin="8,0"
+                                                            Padding="12,0"
+                                                            Click="ConnectDeviceButton_OnClick"
+                                                            Content="连接" />
+                                                </DataTemplate>
+                                            </GridViewColumn.CellTemplate>
+                                        </GridViewColumn>
                                     </GridView>
                                 </ListView.View>
                             </ListView>

+ 8 - 6
windows/NetTool.Client/MainWindow.xaml.cs

@@ -204,7 +204,7 @@ public partial class MainWindow : Window
                 return;
             }
 
-            SetStatus($"已发现 {_discoveredDevices.Count} 台设备,请双击 IP 连接。", StatusMessageType.Success, true);
+            SetStatus($"已发现 {_discoveredDevices.Count} 台设备,请点击右侧连接。", StatusMessageType.Success, true);
         }
         catch (OperationCanceledException)
         {
@@ -272,9 +272,9 @@ public partial class MainWindow : Window
         SetStatus($"已发现 {_discoveredDevices.Count} 台设备,搜索仍在继续。", StatusMessageType.Success, true);
     }
 
-    private async void DiscoveredDevicesListView_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
+    private async void ConnectDeviceButton_OnClick(object sender, RoutedEventArgs e)
     {
-        if (!_isBusy && DiscoveredDevicesListView.SelectedItem is DiscoveredDevice device)
+        if (!_isBusy && sender is Button { DataContext: DiscoveredDevice device })
         {
             await ConnectToDeviceAsync(device);
         }
@@ -288,9 +288,11 @@ public partial class MainWindow : Window
             return;
         }
 
-        DeviceIpColumn.Width = Math.Max(130, availableWidth * 0.26);
-        DeviceHostnameColumn.Width = Math.Max(150, availableWidth * 0.30);
-        DeviceMacColumn.Width = Math.Max(180, availableWidth - DeviceIpColumn.Width - DeviceHostnameColumn.Width);
+        DeviceActionColumn.Width = 88;
+        var contentWidth = Math.Max(0, availableWidth - DeviceActionColumn.Width);
+        DeviceIpColumn.Width = Math.Max(130, contentWidth * 0.26);
+        DeviceHostnameColumn.Width = Math.Max(150, contentWidth * 0.30);
+        DeviceMacColumn.Width = Math.Max(180, contentWidth - DeviceIpColumn.Width - DeviceHostnameColumn.Width);
     }
 
     private void DiscoveredDevicesListView_OnLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)

+ 1 - 1
windows/NetTool.Client/NetTool.Client.csproj

@@ -8,7 +8,7 @@
     <UseWPF>true</UseWPF>
     <AssemblyName>NetTool.Client</AssemblyName>
     <RootNamespace>NetTool.Client</RootNamespace>
-    <InformationalVersion>2026.05.15.1134</InformationalVersion>
+    <InformationalVersion>2026.05.15.1713</InformationalVersion>
   </PropertyGroup>
 
 </Project>