Преглед изворни кода

feat(ui): DHCP模式下隐藏静态IP区并优化变更摘要

yangkaixiang пре 1 месец
родитељ
комит
0bd2e5ee61

+ 11 - 2
windows/NetworkTool.Client/DeviceDetailsWindow.xaml

@@ -77,6 +77,15 @@
             </Style.Triggers>
         </Style>
 
+        <Style x:Key="StaticIpv4SectionBorderStyle" TargetType="Border" BasedOn="{StaticResource ModifiedSectionBorderStyle}">
+            <Setter Property="Visibility" Value="Visible" />
+            <Style.Triggers>
+                <DataTrigger Binding="{Binding Dhcp4}" Value="True">
+                    <Setter Property="Visibility" Value="Collapsed" />
+                </DataTrigger>
+            </Style.Triggers>
+        </Style>
+
         <Style x:Key="ModifiedBadgeStyle" TargetType="TextBlock">
             <Setter Property="Margin" Value="8,0,0,0" />
             <Setter Property="Padding" Value="6,1" />
@@ -170,7 +179,7 @@
                                                 <RowDefinition Height="Auto" />
                                             </Grid.RowDefinitions>
 
-                                             <Border Padding="12" CornerRadius="10" Style="{StaticResource ModifiedSectionBorderStyle}" Tag="{Binding IsAddressModified}">
+                                              <Border Padding="12" CornerRadius="10" Style="{StaticResource StaticIpv4SectionBorderStyle}" Tag="{Binding IsAddressModified}">
                                                   <Grid>
                                                     <Grid.RowDefinitions>
                                                         <RowDefinition Height="Auto" />
@@ -219,7 +228,7 @@
                                                 </Grid>
                                             </Border>
 
-                                             <Border Grid.Row="1" Margin="0,12,0,0" Padding="12" CornerRadius="10" Style="{StaticResource ModifiedSectionBorderStyle}" Tag="{Binding IsGatewayModified}">
+                                              <Border Grid.Row="1" Margin="0,12,0,0" Padding="12" CornerRadius="10" Style="{StaticResource StaticIpv4SectionBorderStyle}" Tag="{Binding IsGatewayModified}">
                                                  <Grid>
                                                     <Grid.RowDefinitions>
                                                         <RowDefinition Height="Auto" />

+ 12 - 2
windows/NetworkTool.Client/DeviceDetailsWindow.xaml.cs

@@ -1223,11 +1223,11 @@ public partial class DeviceDetailsWindow : Window
             var lines = new List<string> { DisplayLabel };
             if (IsAddressModified)
             {
-                lines.Add($"IP:{FormatKeys(_originalAddressKeys)} -> {FormatKeys(GetAddressKeys())}");
+                lines.Add($"IP:{FormatAddressSummary(_originalDhcp4, _originalAddressKeys)} -> {FormatAddressSummary(Dhcp4, GetAddressKeys())}");
             }
             if (IsGatewayModified)
             {
-                lines.Add($"网关:{FormatKeys(_originalGatewayKeys)} -> {FormatKeys(GetGatewayKeys())}");
+                lines.Add($"网关:{FormatGatewaySummary(_originalDhcp4, _originalGatewayKeys)} -> {FormatGatewaySummary(Dhcp4, GetGatewayKeys())}");
             }
             if (IsDnsModified)
             {
@@ -1272,6 +1272,16 @@ public partial class DeviceDetailsWindow : Window
             return keys.Count == 0 ? "无" : string.Join(", ", keys);
         }
 
+        private static string FormatAddressSummary(bool dhcp4, IReadOnlyList<string> keys)
+        {
+            return dhcp4 ? "自动获取" : FormatKeys(keys);
+        }
+
+        private static string FormatGatewaySummary(bool dhcp4, IReadOnlyList<string> keys)
+        {
+            return dhcp4 ? "自动获取" : FormatKeys(keys);
+        }
+
         private void SetField<T>(ref T field, T value, [CallerMemberName] string propertyName = "")
         {
             if (EqualityComparer<T>.Default.Equals(field, value))