From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Plugin.UICollection/TcpDebugger.xaml |  176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 176 insertions(+), 0 deletions(-)

diff --git a/Plugin.UICollection/TcpDebugger.xaml b/Plugin.UICollection/TcpDebugger.xaml
new file mode 100644
index 0000000..2224d08
--- /dev/null
+++ b/Plugin.UICollection/TcpDebugger.xaml
@@ -0,0 +1,176 @@
+锘�<UserControl x:Class="Plugin.UICollection.TcpDebugger"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+             xmlns:local="clr-namespace:Plugin.UICollection"
+             mc:Ignorable="d" 
+             xmlns:pu="https://opensource.panuon.com/wpf-ui"
+             xmlns:dp="clr-namespace:UILib.DpUtil;assembly=UILib"
+             xmlns:uic="clr-namespace:UILib.Converter;assembly=UILib"
+             FontSize="16"
+             d:DesignHeight="450" d:DesignWidth="800">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <!--<ResourceDictionary.MergedDictionaries>
+                <pu:StyleDictionary Excludes="Button" />
+            </ResourceDictionary.MergedDictionaries>-->
+            <Style TargetType="ComboBox"/>
+            <Style TargetType="ComboBoxItem"/>
+            <Style TargetType="Button">
+                
+            </Style>
+            <Style TargetType="GroupBox">
+
+            </Style>
+            <Style TargetType="TextBox">
+                <Setter Property="VerticalContentAlignment" Value="Center"/>
+                <Setter Property="MinWidth" Value="120"/>
+                <Setter Property="Height" Value="Auto"/>
+            </Style>
+        </ResourceDictionary>
+    </UserControl.Resources>
+
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition/>
+            <RowDefinition Height="Auto"/>
+        </Grid.RowDefinitions>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="Auto"/>
+            <ColumnDefinition/>
+        </Grid.ColumnDefinitions>
+        <StackPanel dp:StackPanelHelper.ChildSpace="10" Margin="0,10,0,10">
+            <pu:FormGroup Header="IP" GroupName="client">
+                <TextBox Text="{Binding Ip}"/>
+            </pu:FormGroup>
+
+            <pu:FormGroup Header="Port" GroupName="client">
+                <TextBox Text="{Binding Port}"/>
+            </pu:FormGroup>
+
+            <pu:FormGroup Header="瀹㈡埛绔鍙�" GroupName="client">
+                <TextBox Text="{Binding ClientPort}"/>
+            </pu:FormGroup>
+
+            <Label>
+                <Label.Style>
+                    <Style TargetType="Label">
+                        <Setter Property="Foreground" Value="White"/>
+                        <Setter Property="Background" Value="Red"/>
+                        <Setter Property="VerticalContentAlignment" Value="Center"/>
+                        <Setter Property="HorizontalContentAlignment" Value="Center"/>
+                        <Setter Property="Content" Value="鏈繛鎺�"/>
+                        <Style.Triggers>
+                            <DataTrigger Binding="{Binding IsConnected}" Value="True">
+                                <Setter Property="Background" Value="Green"/>
+                                <Setter Property="Content" Value="宸茶繛鎺�"/>
+                            </DataTrigger>
+                        </Style.Triggers>
+                    </Style>
+                </Label.Style>
+            </Label>
+
+            <Button Tag="Connect" Content="杩炴帴" Click="Button_Click"/>
+            <GroupBox Header="鎺ユ敹璁剧疆">
+                <StackPanel dp:StackPanelHelper.ChildSpace="10" Margin="0,10">
+                    <StackPanel Orientation="Horizontal">
+                        <RadioButton Content="瀛楃涓�" IsChecked="{Binding ReceiveDataType,Converter={x:Static uic:RadioEnumConverter.Instance},ConverterParameter={x:Static local:DataType.String}}" GroupName="ReceiveType"/>
+                        <RadioButton Content="Hex"  IsChecked="{Binding ReceiveDataType,Converter={x:Static uic:RadioEnumConverter.Instance},ConverterParameter={x:Static local:DataType.HEX}}" GroupName="ReceiveType"/>
+                    </StackPanel>
+                    <pu:FormGroup Header="缂栫爜鏍煎紡">
+                        <ComboBox x:Name="receiveEncodeInput" SelectedValue="{Binding ReceiveEncode}"/>
+                        <pu:FormGroup.Style>
+                            <Style TargetType="pu:FormGroup">
+                                <Setter Property="IsEnabled" Value="False"/>
+                                <Style.Triggers>
+                                    <DataTrigger Binding="{Binding ReceiveDataType}" Value="{x:Static local:DataType.String}">
+                                        <Setter Property="IsEnabled" Value="True"/>
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </pu:FormGroup.Style>
+                    </pu:FormGroup>
+                </StackPanel>
+            </GroupBox>
+        </StackPanel>
+
+        <StackPanel Grid.Row="1" Grid.Column="0">
+            <GroupBox Header="鍙戦�佽缃�">
+                <StackPanel dp:StackPanelHelper.ChildSpace="10" Margin="0,10">
+                    <StackPanel Orientation="Horizontal">
+                        <RadioButton Content="瀛楃涓�" IsChecked="{Binding SendDataType,Converter={x:Static uic:RadioEnumConverter.Instance},ConverterParameter={x:Static local:DataType.String}}" GroupName="SendType"/>
+                        <RadioButton Content="Hex"  IsChecked="{Binding SendDataType,Converter={x:Static uic:RadioEnumConverter.Instance},ConverterParameter={x:Static local:DataType.HEX}}" GroupName="SendType"/>
+                    </StackPanel>
+
+                    <pu:FormGroup Header="缂栫爜鏍煎紡">
+                        <ComboBox x:Name="sendEncodeInput" SelectedValue="{Binding SendEncode}"/>
+                        <pu:FormGroup.Style>
+                            <Style TargetType="pu:FormGroup">
+                                <Setter Property="IsEnabled" Value="False"/>
+                                <Style.Triggers>
+                                    <DataTrigger Binding="{Binding SendDataType}" Value="{x:Static local:DataType.String}">
+                                        <Setter Property="IsEnabled" Value="True"/>
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </pu:FormGroup.Style>
+                    </pu:FormGroup>
+
+                    <pu:FormGroup Header="鍒嗛殧绗�">
+                        <ComboBox ItemsSource="{Binding EndMarkSource}" SelectedValue="{Binding EndMark}" DisplayMemberPath="Name" SelectedValuePath="Type"/>
+                        <pu:FormGroup.Style>
+                            <Style TargetType="pu:FormGroup">
+                                <Setter Property="IsEnabled" Value="False"/>
+                                <Style.Triggers>
+                                    <DataTrigger Binding="{Binding SendDataType}" Value="{x:Static local:DataType.String}">
+                                        <Setter Property="IsEnabled" Value="True"/>
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </pu:FormGroup.Style>
+                    </pu:FormGroup>
+                    <pu:FormGroup Header="鑷畾涔夊垎闅旂">
+                        <TextBox Text="{Binding CustomEndMark}"/>
+                        <pu:FormGroup.Style>
+                            <Style TargetType="pu:FormGroup">
+                                <Setter Property="IsEnabled" Value="False"/>
+                                <Style.Triggers>
+                                    <MultiDataTrigger>
+                                        <MultiDataTrigger.Conditions>
+                                            <Condition Binding="{Binding SendDataType}" Value="{x:Static local:DataType.String}"/>
+                                            <Condition Binding="{Binding EndMark}" Value="2"/>
+                                        </MultiDataTrigger.Conditions>
+                                        <Setter Property="IsEnabled" Value="True"/>
+                                    </MultiDataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </pu:FormGroup.Style>
+                    </pu:FormGroup>
+                </StackPanel>
+            </GroupBox>
+        </StackPanel>
+
+        <Grid Grid.Row="1" Grid.Column="1">
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition/>
+                <ColumnDefinition Width="Auto"/>
+            </Grid.ColumnDefinitions>
+            <GroupBox Header="鏁版嵁鍙戦��">
+                <TextBox x:Name="sendBox" TextWrapping="Wrap" VerticalContentAlignment="Top"
+                         PreviewTextInput="TextBox_PreviewTextInput"/>
+            </GroupBox>
+            <Button Grid.Column="1" Padding="20" Content="鍙戦��" Tag="Send" Click="Button_Click"/>
+        </Grid>
+
+        <Grid Grid.Row="0" Grid.Column="1">
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition/>
+                <ColumnDefinition Width="Auto"/>
+            </Grid.ColumnDefinitions>
+            <GroupBox Header="鏁版嵁鎺ユ敹">
+                <RichTextBox x:Name="console" IsReadOnly="True"/>
+            </GroupBox>
+        </Grid>
+    </Grid>
+</UserControl>

--
Gitblit v1.9.1