diff --git a/ProxySU_Core/Models/Developers/ConfigBuilder.cs b/ProxySU_Core/Models/Developers/ConfigBuilder.cs
index 8786fdf..9088f36 100644
--- a/ProxySU_Core/Models/Developers/ConfigBuilder.cs
+++ b/ProxySU_Core/Models/Developers/ConfigBuilder.cs
@@ -175,7 +175,7 @@ namespace ProxySU_Core.Models.Developers
if (parameters.Types.Contains(XrayType.VMESS_KCP))
{
var kcpBound = GetBound("VMESS_KCP.json");
- kcpBound.port = parameters.KcpPort;
+ kcpBound.port = parameters.VMESS_KCP_Port;
kcpBound.settings.clients[0].id = parameters.UUID;
kcpBound.streamSettings.kcpSettings.header.type = parameters.VMESS_KCP_Type;
kcpBound.streamSettings.kcpSettings.seed = parameters.VMESS_KCP_Seed;
diff --git a/ProxySU_Core/Models/Developers/IParameters.cs b/ProxySU_Core/Models/Developers/IParameters.cs
index 56ec5e0..eec2196 100644
--- a/ProxySU_Core/Models/Developers/IParameters.cs
+++ b/ProxySU_Core/Models/Developers/IParameters.cs
@@ -8,7 +8,7 @@ namespace ProxySU_Core.Models.Developers
{
int Port { get; set; }
- int KcpPort { get; set; }
+ int VMESS_KCP_Port { get; set; }
int ShadowSocksPort { get; set; }
diff --git a/ProxySU_Core/Models/Developers/Project.cs b/ProxySU_Core/Models/Developers/Project.cs
index 69a2f7b..9d695d6 100644
--- a/ProxySU_Core/Models/Developers/Project.cs
+++ b/ProxySU_Core/Models/Developers/Project.cs
@@ -313,7 +313,7 @@ namespace ProxySU_Core.Models.Developers
if (Parameters.Types.Contains(XrayType.VMESS_KCP))
{
- portList.Add(Parameters.KcpPort);
+ portList.Add(Parameters.VMESS_KCP_Port);
}
OpenPort(portList.ToArray());
@@ -481,7 +481,7 @@ namespace ProxySU_Core.Models.Developers
SetPortFree(80);
SetPortFree(443);
SetPortFree(Parameters.Port);
- SetPortFree(Parameters.KcpPort);
+ SetPortFree(Parameters.VMESS_KCP_Port);
SetPortFree(Parameters.ShadowSocksPort);
}
}
diff --git a/ProxySU_Core/Models/Developers/XrayProject.cs b/ProxySU_Core/Models/Developers/XrayProject.cs
index 3690790..1a160b2 100644
--- a/ProxySU_Core/Models/Developers/XrayProject.cs
+++ b/ProxySU_Core/Models/Developers/XrayProject.cs
@@ -111,7 +111,7 @@ namespace ProxySU_Core.Models.Developers
WriteOutput("卸载证书");
UninstallAcme();
WriteOutput("关闭端口");
- ClosePort(Parameters.ShadowSocksPort, Parameters.KcpPort);
+ ClosePort(Parameters.ShadowSocksPort, Parameters.VMESS_KCP_Port);
WriteOutput("************ 卸载完成 ************");
}
diff --git a/ProxySU_Core/Models/ShareLink.cs b/ProxySU_Core/Models/ShareLink.cs
index 94d4608..60a6bc0 100644
--- a/ProxySU_Core/Models/ShareLink.cs
+++ b/ProxySU_Core/Models/ShareLink.cs
@@ -20,6 +20,7 @@ namespace ProxySU_Core.Models
case XrayType.VLESS_TCP:
case XrayType.VLESS_TCP_XTLS:
case XrayType.VLESS_WS:
+ case XrayType.VLESS_KCP:
case XrayType.Trojan_TCP:
return BuildVlessShareLink(xrayType, settings);
case XrayType.VMESS_TCP:
@@ -77,7 +78,7 @@ namespace ProxySU_Core.Models
break;
case XrayType.VMESS_KCP:
vmess.ps = "vmess-mKCP";
- vmess.port = settings.KcpPort.ToString();
+ vmess.port = settings.VMESS_KCP_Port.ToString();
vmess.net = "kcp";
vmess.type = settings.VMESS_KCP_Type;
vmess.path = settings.VMESS_KCP_Seed;
@@ -103,6 +104,8 @@ namespace ProxySU_Core.Models
var _path = "/";
var _host = settings.Domain;
var _descriptiveText = string.Empty;
+ var _headerType = "none";
+ var _seed = string.Empty;
switch (xrayType)
{
@@ -126,19 +129,12 @@ namespace ProxySU_Core.Models
_encryption = "none";
_descriptiveText = "vless-ws-tls";
break;
- case XrayType.VMESS_TCP:
- _protocol = "vmess";
- _type = "tcp";
- _path = settings.VMESS_TCP_Path;
- _encryption = "auto";
- _descriptiveText = "vmess-tcp-tls";
- break;
- case XrayType.VMESS_WS:
- _protocol = "vmess";
- _type = "ws";
- _path = settings.VMESS_WS_Path;
- _encryption = "auto";
- _descriptiveText = "vmess-ws-tls";
+ case XrayType.VLESS_KCP:
+ _protocol = "vless";
+ _type = "kcp";
+ _headerType = settings.VLESS_KCP_Type;
+ _seed = settings.VLESS_KCP_Seed;
+ _port = settings.VLESS_KCP_Port;
break;
case XrayType.Trojan_TCP:
_protocol = "trojan";
@@ -154,11 +150,13 @@ namespace ProxySU_Core.Models
if (xrayType != XrayType.Trojan_TCP)
{
// 4.3 传输层相关段
- parametersURL = $"?type={_type}&encryption={_encryption}&security={_security}&host={_host}&path={HttpUtility.UrlEncode(_path)}";
+ parametersURL = $"?type={_type}&encryption={_encryption}&security={_security}&host={_host}&path={HttpUtility.UrlEncode(_path)}&headerType={_headerType}";
-
- // if mKCP
- // if QUIC
+ // kcp
+ if (xrayType == XrayType.VLESS_KCP)
+ {
+ parametersURL += $"&seed={_seed}";
+ }
// 4.4 TLS 相关段
if (xrayType == XrayType.VLESS_TCP_XTLS)
diff --git a/ProxySU_Core/Models/XraySettings.cs b/ProxySU_Core/Models/XraySettings.cs
index 2d10b1c..153a978 100644
--- a/ProxySU_Core/Models/XraySettings.cs
+++ b/ProxySU_Core/Models/XraySettings.cs
@@ -17,7 +17,8 @@ namespace ProxySU_Core.Models
{
var guid = Guid.NewGuid().ToString();
Port = 443;
- KcpPort = 10443;
+ VLESS_KCP_Port = 10445;
+ VMESS_KCP_Port = 10443;
ShadowSocksPort = 11443;
UUID = guid;
@@ -45,9 +46,14 @@ namespace ProxySU_Core.Models
public int Port { get; set; }
///
- /// kcp端口
+ /// vless kcp端口
///
- public int KcpPort { get; set; }
+ public int VLESS_KCP_Port { get; set; }
+
+ ///
+ /// vmess kcp端口
+ ///
+ public int VMESS_KCP_Port { get; set; }
// ss端口
public int ShadowSocksPort { get; set; }
@@ -67,6 +73,16 @@ namespace ProxySU_Core.Models
/// vless http2 path
///
public string VLESS_H2_Path { get; set; }
+
+ ///
+ /// vless kcp seed
+ ///
+ public string VLESS_KCP_Seed { get; set; }
+
+ ///
+ /// vless kcp type
+ ///
+ public string VLESS_KCP_Type { get; set; }
#endregion
#region vmess
diff --git a/ProxySU_Core/ProxySU_Core.csproj b/ProxySU_Core/ProxySU_Core.csproj
index 5d6064e..0ba925f 100644
--- a/ProxySU_Core/ProxySU_Core.csproj
+++ b/ProxySU_Core/ProxySU_Core.csproj
@@ -144,15 +144,48 @@
-
+
ClientInfoWindow.xaml
+
+ ShadowSocksControl.xaml
+
+
+ Trojan_TCP_Control.xaml
+
+
+ VLESS_KCP_Control.xaml
+
+
+ VLESS_TCP_TLS_Control.xaml
+
+
+ VLESS_WS_TLS_Control.xaml
+
+
+ VLESS_XTLS_Control.xaml
+
+
+ VMESS_KCP_Control.xaml
+
+
+ VMESS_TCP_TLS_Control.xaml
+
+
+ VMESS_WS_TLS_Control.xaml
+
MainWindow.xaml
-
+
RecordEditorWindow.xaml
+
+ ServerInfoControl.xaml
+
+
+ VlessEditorControl.xaml
+
TerminalWindow.xaml
@@ -306,7 +339,43 @@
MSBuild:Compile
Designer
-
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
Designer
MSBuild:Compile
@@ -314,7 +383,15 @@
MSBuild:Compile
Designer
-
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
Designer
MSBuild:Compile
diff --git a/ProxySU_Core/ViewModels/XraySettingsViewModel.cs b/ProxySU_Core/ViewModels/XraySettingsViewModel.cs
index 6b71a4c..b3fec33 100644
--- a/ProxySU_Core/ViewModels/XraySettingsViewModel.cs
+++ b/ProxySU_Core/ViewModels/XraySettingsViewModel.cs
@@ -10,19 +10,31 @@ using System.Threading.Tasks;
using System.Web;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Input;
namespace ProxySU_Core.ViewModels
{
public partial class XraySettingsViewModel : BaseViewModel
{
public XraySettings settings;
+ private readonly ICommand _randomUuid;
public XraySettingsViewModel(XraySettings parameters)
{
+ _randomUuid = new BaseCommand((obj) => GetUuid());
this.settings = parameters;
Notify("VMESS_KCP_Type");
}
+ public ICommand RandomUuid
+ {
+ get
+ {
+ return _randomUuid;
+ }
+ }
+
+
public int Port
{
get => settings.Port;
@@ -33,13 +45,23 @@ namespace ProxySU_Core.ViewModels
}
}
- public int KcpPort
+ public int VLESS_KCP_Port
{
- get => settings.KcpPort;
+ get => settings.VLESS_KCP_Port;
set
{
- settings.KcpPort = value;
- Notify("KcpPort");
+ settings.VLESS_KCP_Port = value;
+ Notify("VLESS_KCP_Port");
+ }
+ }
+
+ public int VMESS_KCP_Port
+ {
+ get => settings.VMESS_KCP_Port;
+ set
+ {
+ settings.VMESS_KCP_Port = value;
+ Notify("VMESS_KCP_Port");
}
}
@@ -48,7 +70,7 @@ namespace ProxySU_Core.ViewModels
get => settings.ShadowSocksPort;
set
{
- settings.KcpPort = value;
+ settings.VMESS_KCP_Port = value;
Notify("ShadowSocksPort");
}
}
@@ -156,6 +178,14 @@ namespace ProxySU_Core.ViewModels
}
}
+
+
+ private void GetUuid()
+ {
+ UUID = Guid.NewGuid().ToString();
+ Notify("UUID");
+ }
+
}
public partial class XraySettingsViewModel
@@ -256,7 +286,6 @@ namespace ProxySU_Core.ViewModels
get => ShareLink.Build(XrayType.VLESS_TCP_XTLS, settings);
}
-
// vless tcp
public bool Checked_VLESS_TCP
{
@@ -296,6 +325,37 @@ namespace ProxySU_Core.ViewModels
get => ShareLink.Build(XrayType.VLESS_WS, settings);
}
+ // vless kcp
+ public string VLESS_KCP_Seed
+ {
+ get => settings.VLESS_KCP_Seed;
+ set => settings.VLESS_KCP_Seed = value;
+ }
+ public string VLESS_KCP_Type
+ {
+ get => settings.VLESS_KCP_Type;
+ set
+ {
+ var namespaceStr = typeof(ComboBoxItem).FullName + ":";
+ var trimValue = value.Replace(namespaceStr, "");
+ trimValue = trimValue.Trim();
+ settings.VLESS_KCP_Type = trimValue;
+ Notify("VLESS_KCP_Type");
+ }
+ }
+ public bool Checked_VLESS_KCP
+ {
+ get => settings.Types.Contains(XrayType.VMESS_KCP);
+ set
+ {
+ CheckBoxChanged(value, XrayType.VMESS_KCP);
+ Notify("Checked_VLESS_KCP");
+ }
+ }
+ public string VLESS_KCP_ShareLink
+ {
+ get => ShareLink.Build(XrayType.VLESS_KCP, settings);
+ }
}
}
diff --git a/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml b/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml
new file mode 100644
index 0000000..be2228a
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfoWindow.xaml.cs b/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml.cs
similarity index 95%
rename from ProxySU_Core/Views/ClientInfoWindow.xaml.cs
rename to ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml.cs
index a0cf9b7..e1361ba 100644
--- a/ProxySU_Core/Views/ClientInfoWindow.xaml.cs
+++ b/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml.cs
@@ -14,7 +14,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
-namespace ProxySU_Core.Views
+namespace ProxySU_Core.Views.ClientInfo
{
///
/// ClientInfoWindow.xaml 的交互逻辑
diff --git a/ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml b/ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml
new file mode 100644
index 0000000..17202bc
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml.cs b/ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml.cs
new file mode 100644
index 0000000..e4455d1
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// ShadowSocksClientInfoControl.xaml 的交互逻辑
+ ///
+ public partial class ShadowSocksControl : UserControl
+ {
+ public ShadowSocksControl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml b/ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml
new file mode 100644
index 0000000..3094279
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml.cs
new file mode 100644
index 0000000..9bfd136
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// Trojan_TCP_Control.xaml 的交互逻辑
+ ///
+ public partial class Trojan_TCP_Control : UserControl
+ {
+ public Trojan_TCP_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml b/ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml
new file mode 100644
index 0000000..9201d45
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml.cs
new file mode 100644
index 0000000..efa174b
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VLESS_KCP_Control.xaml 的交互逻辑
+ ///
+ public partial class VLESS_KCP_Control : UserControl
+ {
+ public VLESS_KCP_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml b/ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml
new file mode 100644
index 0000000..4e5f5d5
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml.cs
new file mode 100644
index 0000000..f0c4070
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VLESS_TCP_TLS_Control.xaml 的交互逻辑
+ ///
+ public partial class VLESS_TCP_TLS_Control : UserControl
+ {
+ public VLESS_TCP_TLS_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml b/ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml
new file mode 100644
index 0000000..529d1d8
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml.cs
new file mode 100644
index 0000000..71f3cd2
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VLESS_WS_TLS_Control.xaml 的交互逻辑
+ ///
+ public partial class VLESS_WS_TLS_Control : UserControl
+ {
+ public VLESS_WS_TLS_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml b/ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml
new file mode 100644
index 0000000..f870668
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml.cs
new file mode 100644
index 0000000..5358a86
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VLESS_XTLS_Control.xaml 的交互逻辑
+ ///
+ public partial class VLESS_XTLS_Control : UserControl
+ {
+ public VLESS_XTLS_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml b/ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml
new file mode 100644
index 0000000..2f39d47
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml.cs
new file mode 100644
index 0000000..4045983
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VMESS_KCP_Control.xaml 的交互逻辑
+ ///
+ public partial class VMESS_KCP_Control : UserControl
+ {
+ public VMESS_KCP_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml b/ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml
new file mode 100644
index 0000000..de3238a
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml.cs
new file mode 100644
index 0000000..735e7cf
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VMESS_TCP_TLS_Control.xaml 的交互逻辑
+ ///
+ public partial class VMESS_TCP_TLS_Control : UserControl
+ {
+ public VMESS_TCP_TLS_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml b/ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml
new file mode 100644
index 0000000..f40bfc0
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml.cs b/ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml.cs
new file mode 100644
index 0000000..435ca80
--- /dev/null
+++ b/ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.ClientInfo
+{
+ ///
+ /// VMESS_WS_TLS_Control.xaml 的交互逻辑
+ ///
+ public partial class VMESS_WS_TLS_Control : UserControl
+ {
+ public VMESS_WS_TLS_Control()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/ClientInfoWindow.xaml b/ProxySU_Core/Views/ClientInfoWindow.xaml
deleted file mode 100644
index c1cbeb0..0000000
--- a/ProxySU_Core/Views/ClientInfoWindow.xaml
+++ /dev/null
@@ -1,428 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ProxySU_Core/Views/MainWindow.xaml.cs b/ProxySU_Core/Views/MainWindow.xaml.cs
index b33c227..179c625 100644
--- a/ProxySU_Core/Views/MainWindow.xaml.cs
+++ b/ProxySU_Core/Views/MainWindow.xaml.cs
@@ -5,6 +5,8 @@ using ProxySU_Core.Common;
using ProxySU_Core.Models;
using ProxySU_Core.ViewModels;
using ProxySU_Core.Views;
+using ProxySU_Core.Views.ClientInfo;
+using ProxySU_Core.Views.RecordEditor;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
diff --git a/ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml b/ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml
new file mode 100644
index 0000000..9f2ef97
--- /dev/null
+++ b/ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/RecordEditorWindow.xaml.cs b/ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml.cs
similarity index 89%
rename from ProxySU_Core/Views/RecordEditorWindow.xaml.cs
rename to ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml.cs
index 4a0c19f..09d0524 100644
--- a/ProxySU_Core/Views/RecordEditorWindow.xaml.cs
+++ b/ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml.cs
@@ -14,7 +14,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
-namespace ProxySU_Core.Views
+namespace ProxySU_Core.Views.RecordEditor
{
///
/// RecordEditorWindow.xaml 的交互逻辑
@@ -49,10 +49,5 @@ namespace ProxySU_Core.Views
Close();
}
- public void RandomUuid(object sender, RoutedEventArgs e)
- {
- Settings.UUID = Guid.NewGuid().ToString();
- }
-
}
}
diff --git a/ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml b/ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml
new file mode 100644
index 0000000..6833e93
--- /dev/null
+++ b/ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml.cs b/ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml.cs
new file mode 100644
index 0000000..ac95ae5
--- /dev/null
+++ b/ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.RecordEditor
+{
+ ///
+ /// ServerInfoControl.xaml 的交互逻辑
+ ///
+ public partial class ServerInfoControl : UserControl
+ {
+ public ServerInfoControl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/RecordEditor/VlessEditorControl.xaml b/ProxySU_Core/Views/RecordEditor/VlessEditorControl.xaml
new file mode 100644
index 0000000..64dae20
--- /dev/null
+++ b/ProxySU_Core/Views/RecordEditor/VlessEditorControl.xaml
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProxySU_Core/Views/RecordEditor/VlessEditorControl.xaml.cs b/ProxySU_Core/Views/RecordEditor/VlessEditorControl.xaml.cs
new file mode 100644
index 0000000..d36da95
--- /dev/null
+++ b/ProxySU_Core/Views/RecordEditor/VlessEditorControl.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ProxySU_Core.Views.RecordEditor
+{
+ ///
+ /// VlessEditorControl.xaml 的交互逻辑
+ ///
+ public partial class VlessEditorControl : UserControl
+ {
+ public VlessEditorControl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProxySU_Core/Views/RecordEditorWindow.xaml b/ProxySU_Core/Views/RecordEditorWindow.xaml
deleted file mode 100644
index d8490cd..0000000
--- a/ProxySU_Core/Views/RecordEditorWindow.xaml
+++ /dev/null
@@ -1,412 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-