mirror of
https://github.com/proxysu/ProxySU.git
synced 2024-11-24 14:16:08 +03:00
update ui
This commit is contained in:
parent
db6a399ca9
commit
4c0d3a0cf4
@ -65,6 +65,7 @@
|
|||||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime" />
|
||||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
@ -11,322 +11,314 @@
|
|||||||
<convert:VisibleConverter x:Key="VisibleConverter" />
|
<convert:VisibleConverter x:Key="VisibleConverter" />
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Vertical" Margin="10,0,20,20">
|
||||||
<StackPanel Width="220">
|
<!--节点类型-->
|
||||||
<!--TCP-->
|
<GroupBox Padding="10" Header="{DynamicResource EditorProxyType}">
|
||||||
<CheckBox Margin="0,15,0,0"
|
<StackPanel Orientation="Horizontal">
|
||||||
VerticalContentAlignment="Center"
|
<WrapPanel Orientation="Vertical">
|
||||||
IsChecked="{Binding Path=Checked_VLESS_TCP}">
|
<!--TCP-->
|
||||||
<Label Content="{DynamicResource VlessTcpDesc}" FontSize="13" Foreground="LimeGreen" />
|
<CheckBox Width="150"
|
||||||
</CheckBox>
|
VerticalContentAlignment="Center"
|
||||||
|
IsChecked="{Binding Path=Checked_VLESS_TCP}">
|
||||||
|
<Label Content="{DynamicResource VlessTcpDesc}" FontSize="13" Foreground="LimeGreen" />
|
||||||
|
</CheckBox>
|
||||||
|
|
||||||
<!--WebSocket-->
|
<!--WebSocket-->
|
||||||
<CheckBox Margin="0,15,0,0"
|
<CheckBox Width="150"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
IsChecked="{Binding Path=Checked_VLESS_WS}">
|
IsChecked="{Binding Path=Checked_VLESS_WS}">
|
||||||
<Label Content="{DynamicResource VlessWsDesc}" FontSize="13" Foreground="LimeGreen" />
|
<Label Content="{DynamicResource VlessWsDesc}" FontSize="13" Foreground="LimeGreen" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
|
|
||||||
<!--mKCP-->
|
<!--mKCP-->
|
||||||
<CheckBox Margin="0,15,0,0"
|
<CheckBox Width="150"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Foreground="LimeGreen"
|
Foreground="LimeGreen"
|
||||||
IsChecked="{Binding Path=Checked_VLESS_KCP}">
|
IsChecked="{Binding Path=Checked_VLESS_KCP}">
|
||||||
<Label Content="{DynamicResource VlessKcpDesc}" FontSize="13" Foreground="LimeGreen" />
|
<Label Content="{DynamicResource VlessKcpDesc}" FontSize="13" Foreground="LimeGreen" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
|
|
||||||
<!--gRPC-->
|
<!--gRPC-->
|
||||||
<CheckBox Margin="0,15,0,0"
|
<CheckBox Width="150"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Foreground="LimeGreen"
|
Foreground="LimeGreen"
|
||||||
IsChecked="{Binding Path=Checked_VLESS_gRPC}">
|
IsChecked="{Binding Path=Checked_VLESS_gRPC}">
|
||||||
<Label Content="VLESS gRPC
基于http2,多路复用。" FontSize="13" Foreground="LimeGreen" />
|
<Label Content="{DynamicResource VlessRpcDesc}" FontSize="13" Foreground="LimeGreen" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
|
</WrapPanel>
|
||||||
|
|
||||||
<!--TCP-->
|
<WrapPanel Orientation="Vertical">
|
||||||
<!--<CheckBox Content="VMESS over TCP with TLS
不推荐"
|
<!--WebSocket-->
|
||||||
Margin="0,15,0,0"
|
<CheckBox Width="150"
|
||||||
FontSize="13"
|
VerticalContentAlignment="Center"
|
||||||
Style="{StaticResource MahApps.Styles.CheckBox}"
|
IsChecked="{Binding Path=Checked_VMESS_WS}">
|
||||||
IsChecked="{Binding Path=Checked_VMESS_TCP}" />-->
|
<Label Content="{DynamicResource VmessWsDesc}" FontSize="13" Foreground="Blue" />
|
||||||
|
</CheckBox>
|
||||||
|
|
||||||
<!--WebSocket-->
|
<!--mKCP-->
|
||||||
<CheckBox Margin="0,15,0,0"
|
<CheckBox Width="150"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
IsChecked="{Binding Path=Checked_VMESS_WS}">
|
IsChecked="{Binding Path=Checked_VMESS_KCP}">
|
||||||
<Label Content="{DynamicResource VmessWsDesc}" FontSize="13" Foreground="Blue" />
|
<Label Foreground="Blue" FontSize="13" Content="{DynamicResource VmessKcpDesc}" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
|
</WrapPanel>
|
||||||
|
|
||||||
<!--mKCP-->
|
<WrapPanel Orientation="Vertical">
|
||||||
<CheckBox Margin="0,15,0,0"
|
<!--ss-->
|
||||||
VerticalContentAlignment="Center"
|
<CheckBox Width="150"
|
||||||
IsChecked="{Binding Path=Checked_VMESS_KCP}">
|
VerticalContentAlignment="Center"
|
||||||
<Label Foreground="Blue" FontSize="13" Content="{DynamicResource VmessKcpDesc}" />
|
IsChecked="{Binding Path=CheckedShadowSocks}">
|
||||||
</CheckBox>
|
<Label Content="{DynamicResource SSDesc}" FontSize="13" Foreground="Fuchsia" />
|
||||||
|
</CheckBox>
|
||||||
|
|
||||||
<!--ss-->
|
<!--Trojan-->
|
||||||
<CheckBox Margin="0,15,0,0"
|
<CheckBox Width="150"
|
||||||
VerticalContentAlignment="Center"
|
Foreground="CadetBlue"
|
||||||
IsChecked="{Binding Path=CheckedShadowSocks}">
|
VerticalContentAlignment="Center"
|
||||||
<Label Content="{DynamicResource SSDesc}" FontSize="13" Foreground="Fuchsia" />
|
IsChecked="{Binding Path=Checked_Trojan_TCP}">
|
||||||
</CheckBox>
|
<Label Content="{DynamicResource TrojanDesc}" FontSize="13" Foreground="CadetBlue" />
|
||||||
|
</CheckBox>
|
||||||
<!--Trojan-->
|
</WrapPanel>
|
||||||
<CheckBox Margin="0,15,0,0"
|
</StackPanel>
|
||||||
Foreground="CadetBlue"
|
</GroupBox>
|
||||||
VerticalContentAlignment="Center"
|
|
||||||
IsChecked="{Binding Path=Checked_Trojan_TCP}">
|
|
||||||
<Label Content="{DynamicResource TrojanDesc}" FontSize="13" Foreground="CadetBlue" />
|
|
||||||
</CheckBox>
|
|
||||||
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--************************** 参数 **************************-->
|
<!--************************** 参数 **************************-->
|
||||||
|
|
||||||
<StackPanel>
|
<!--参数设置-->
|
||||||
|
<GroupBox Padding="10" Margin="0,10,0,0" Header="{DynamicResource EditorProxyParams}">
|
||||||
<!--Domain-->
|
<StackPanel>
|
||||||
<StackPanel Margin="30,15,0,0"
|
<!--Domain-->
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource XrayDomain}" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=Domain}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--Mask Domain-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource XrayMarkDomain}" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=MaskDomain}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource XrayWithTLS}" Width="120" />
|
|
||||||
<CheckBox IsChecked="{Binding Path=WithTLS}"
|
|
||||||
Content="{DynamicResource XrayWithTLSDesc}"
|
|
||||||
VerticalContentAlignment="Center"
|
|
||||||
VerticalAlignment="Center" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--UUID-->
|
|
||||||
<StackPanel Margin="30,10,0,0"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource XrayUUID}" Width="120" />
|
|
||||||
|
|
||||||
<TextBox Text="{Binding Path=UUID}"
|
|
||||||
Width="200" />
|
|
||||||
|
|
||||||
<Button Margin="5,0,0,0"
|
|
||||||
Padding="12,3"
|
|
||||||
Command="{Binding Path=RandomUuid}"
|
|
||||||
Content="{DynamicResource Random}" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--WebSocket Path-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VLESS_WS,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VlessWsPath}" Foreground="LimeGreen" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=VLESS_WS_Path}"
|
|
||||||
Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--seed-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VLESS_KCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VlessKcpSeed}" Foreground="LimeGreen" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=VLESS_KCP_Seed}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--kcp type-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VLESS_KCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}" Orientation="Horizontal">
|
|
||||||
|
|
||||||
<Label Content="{DynamicResource VlessKcpType}" Foreground="LimeGreen" Width="120" />
|
|
||||||
<ComboBox Width="200"
|
|
||||||
ItemsSource="{Binding Path=KcpTypes}"
|
|
||||||
SelectedValue="{Binding VLESS_KCP_Type,Mode=TwoWay}">
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--kcp port-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VLESS_KCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource VlessKcpPort}" Width="120" Foreground="LimeGreen" />
|
|
||||||
<TextBox Text="{Binding Path=VLESS_KCP_Port}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--gRPC Port-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VLESS_gRPC,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VlessRPCPort}" Width="120" Foreground="LimeGreen" />
|
|
||||||
<TextBox Text="{Binding Path=VLESS_gRPC_Port}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VLESS_gRPC,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VlessRPCName}" Width="120" Foreground="LimeGreen" />
|
|
||||||
<TextBox Text="{Binding Path=VLESS_gRPC_ServiceName}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--Tcp Path
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VMESS_TCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="VMESS WS路径" Foreground="Blue" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=VMESS_TCP_Path}"
|
|
||||||
VerticalAlignment="Bottom"
|
|
||||||
Width="200" />
|
|
||||||
</StackPanel>-->
|
|
||||||
|
|
||||||
<!--WebSocket Path-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VMESS_WS,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VmessWsPath}" Foreground="Blue" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=VMESS_WS_Path}"
|
|
||||||
VerticalAlignment="Bottom"
|
|
||||||
Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--seed-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VMESS_KCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VmessKcpSeed}" Foreground="Blue" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=VMESS_KCP_Seed}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--kcp type-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VMESS_KCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VmessKcpType}" Foreground="Blue" Width="120" VerticalAlignment="Bottom"/>
|
|
||||||
<ComboBox Width="200"
|
|
||||||
VerticalAlignment="Bottom"
|
|
||||||
ItemsSource="{Binding Path=KcpTypes}"
|
|
||||||
SelectedValue="{Binding VMESS_KCP_Type,Mode=TwoWay}">
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--kcp port-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_VMESS_KCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource VmessKcpPort}" Foreground="Blue" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=VMESS_KCP_Port}" Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--ss密码-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=CheckedShadowSocks,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource SSPassword}" Foreground="Fuchsia" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=ShadowSocksPassword}"
|
|
||||||
Width="200"/>
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--ss加密方式-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=CheckedShadowSocks,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource SSMethods}" Foreground="Fuchsia" Width="120" />
|
|
||||||
<ComboBox Width="200"
|
|
||||||
ItemsSource="{Binding ShadowSocksMethods}"
|
|
||||||
SelectedValue="{Binding ShadowSocksMethod}">
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--ss端口-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=CheckedShadowSocks,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource SSPort}" Foreground="Fuchsia" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=ShadowSocksPort}" Width="200"/>
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--Trojan密码-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Visibility="{
|
|
||||||
Binding Path=Checked_Trojan_TCP,
|
|
||||||
Converter={StaticResource VisibleConverter}
|
|
||||||
}">
|
|
||||||
<Label Content="{DynamicResource TrojanPassword}" Foreground="CadetBlue" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=TrojanPassword}"
|
|
||||||
Width="200" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--xray prot-->
|
|
||||||
<StackPanel Margin="30,15,0,0"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource XrayPort}" Foreground="Gray" Width="120" />
|
|
||||||
<TextBox Text="{Binding Path=Port}" Width="120" />
|
|
||||||
<Label Content="{DynamicResource XrayPortDefault}" Foreground="Red" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<!--多用户-->
|
|
||||||
<StackPanel Margin="30,10,0,0"
|
|
||||||
Orientation="Vertical">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Label Content="{DynamicResource MultiUser}" Width="120" />
|
<Label Content="{DynamicResource XrayDomain}" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=Domain}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
<TextBox Text="{Binding Path=MultiUUID}"
|
<!--Mask Domain-->
|
||||||
Height="60"
|
<StackPanel Margin="0,15,0,0" Orientation="Horizontal">
|
||||||
TextWrapping="Wrap"
|
<Label Content="{DynamicResource XrayMarkDomain}" Width="120" />
|
||||||
Width="200" />
|
<TextBox Text="{Binding Path=MaskDomain}" Width="200" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel>
|
|
||||||
<TextBlock Margin="120,3,0,0" Text="{DynamicResource MultiUserHelp}" />
|
<!--UUID-->
|
||||||
|
<StackPanel Margin="0,15,0,0" Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource XrayUUID}" Width="120" />
|
||||||
|
|
||||||
|
<TextBox Text="{Binding Path=UUID}" Width="200" />
|
||||||
|
|
||||||
|
<Button Margin="5,0,0,0"
|
||||||
|
Padding="12,3"
|
||||||
|
Command="{Binding Path=RandomUuid}"
|
||||||
|
Content="{DynamicResource Random}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--more params-->
|
||||||
|
<Expander ExpandDirection="Down" Margin="0,10,0,0">
|
||||||
|
<Expander.Header>
|
||||||
|
<TextBlock Text="更多参数" FontWeight="Bold" />
|
||||||
|
</Expander.Header>
|
||||||
|
|
||||||
|
<Expander.Content>
|
||||||
|
<StackPanel>
|
||||||
|
<!--证书-->
|
||||||
|
<StackPanel Margin="0,15,0,0" Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource XrayWithTLS}" Width="120" />
|
||||||
|
<CheckBox IsChecked="{Binding Path=WithTLS}"
|
||||||
|
Content="{DynamicResource XrayWithTLSDesc}"
|
||||||
|
VerticalContentAlignment="Center"
|
||||||
|
VerticalAlignment="Center" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--WebSocket Path-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VLESS_WS,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VlessWsPath}" Foreground="LimeGreen" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=VLESS_WS_Path}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--seed-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VLESS_KCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VlessKcpSeed}" Foreground="LimeGreen" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=VLESS_KCP_Seed}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--kcp type-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VLESS_KCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource VlessKcpType}" Foreground="LimeGreen" Width="120" />
|
||||||
|
<ComboBox Width="200"
|
||||||
|
ItemsSource="{Binding Path=KcpTypes}"
|
||||||
|
SelectedValue="{Binding VLESS_KCP_Type,Mode=TwoWay}">
|
||||||
|
</ComboBox>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--kcp port-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VLESS_KCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource VlessKcpPort}" Width="120" Foreground="LimeGreen" />
|
||||||
|
<TextBox Text="{Binding Path=VLESS_KCP_Port}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--gRPC Port-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VLESS_gRPC,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VlessRPCPort}" Width="120" Foreground="LimeGreen" />
|
||||||
|
<TextBox Text="{Binding Path=VLESS_gRPC_Port}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VLESS_gRPC,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VlessRPCName}" Width="120" Foreground="LimeGreen" />
|
||||||
|
<TextBox Text="{Binding Path=VLESS_gRPC_ServiceName}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--WebSocket Path-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VMESS_WS,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VmessWsPath}" Foreground="Blue" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=VMESS_WS_Path}"
|
||||||
|
VerticalAlignment="Bottom"
|
||||||
|
Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--seed-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VMESS_KCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VmessKcpSeed}" Foreground="Blue" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=VMESS_KCP_Seed}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--kcp type-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VMESS_KCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VmessKcpType}" Foreground="Blue" Width="120" VerticalAlignment="Bottom"/>
|
||||||
|
<ComboBox Width="200"
|
||||||
|
VerticalAlignment="Bottom"
|
||||||
|
ItemsSource="{Binding Path=KcpTypes}"
|
||||||
|
SelectedValue="{Binding VMESS_KCP_Type,Mode=TwoWay}">
|
||||||
|
</ComboBox>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--kcp port-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_VMESS_KCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource VmessKcpPort}" Foreground="Blue" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=VMESS_KCP_Port}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--ss密码-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=CheckedShadowSocks,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource SSPassword}" Foreground="Fuchsia" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=ShadowSocksPassword}" Width="200"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--ss加密方式-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=CheckedShadowSocks,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource SSMethods}" Foreground="Fuchsia" Width="120" />
|
||||||
|
<ComboBox Width="200"
|
||||||
|
ItemsSource="{Binding ShadowSocksMethods}"
|
||||||
|
SelectedValue="{Binding ShadowSocksMethod}">
|
||||||
|
</ComboBox>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--ss端口-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=CheckedShadowSocks,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource SSPort}" Foreground="Fuchsia" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=ShadowSocksPort}" Width="200"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--Trojan密码-->
|
||||||
|
<StackPanel Margin="0,15,0,0"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
Visibility="{
|
||||||
|
Binding Path=Checked_Trojan_TCP,
|
||||||
|
Converter={StaticResource VisibleConverter}
|
||||||
|
}">
|
||||||
|
<Label Content="{DynamicResource TrojanPassword}" Foreground="CadetBlue" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=TrojanPassword}" Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--xray prot-->
|
||||||
|
<StackPanel Margin="0,15,0,0" Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource XrayPort}" Foreground="Gray" Width="120" />
|
||||||
|
<TextBox Text="{Binding Path=Port}" Width="120" />
|
||||||
|
<Label Content="{DynamicResource XrayPortDefault}" Foreground="Red" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<!--多用户-->
|
||||||
|
<StackPanel Margin="0,15,0,0" Orientation="Vertical">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource MultiUser}" Width="120" />
|
||||||
|
|
||||||
|
<TextBox Text="{Binding Path=MultiUUID}"
|
||||||
|
Height="60"
|
||||||
|
TextWrapping="Wrap"
|
||||||
|
Width="200" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Margin="120,3,0,0" Text="{DynamicResource MultiUserHelp}" />
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</Expander.Content>
|
||||||
|
</Expander>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</GroupBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
@ -94,14 +94,13 @@
|
|||||||
<GroupBox Padding="10" Margin="0,10,0,0" Header="{DynamicResource EditorProxyParams}">
|
<GroupBox Padding="10" Margin="0,10,0,0" Header="{DynamicResource EditorProxyParams}">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<!--Domain-->
|
<!--Domain-->
|
||||||
<StackPanel Margin="0,15,0,0"
|
<StackPanel Orientation="Horizontal">
|
||||||
Orientation="Horizontal">
|
|
||||||
<Label Content="{DynamicResource XrayDomain}" Width="120" />
|
<Label Content="{DynamicResource XrayDomain}" Width="120" />
|
||||||
<TextBox Text="{Binding Path=Domain}" Width="260" />
|
<TextBox Text="{Binding Path=Domain}" Width="260" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<!--UUID-->
|
<!--UUID-->
|
||||||
<StackPanel Margin="0,10,0,0" Orientation="Horizontal">
|
<StackPanel Margin="0,15,0,0" Orientation="Horizontal">
|
||||||
<Label Content="{DynamicResource XrayUUID}" Width="120" />
|
<Label Content="{DynamicResource XrayUUID}" Width="120" />
|
||||||
|
|
||||||
<TextBox Text="{Binding Path=UUID}"
|
<TextBox Text="{Binding Path=UUID}"
|
||||||
|
@ -23,54 +23,54 @@
|
|||||||
<ctrl:HostControl />
|
<ctrl:HostControl />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Grid.Column="1" Background="#EEE"></StackPanel>
|
<StackPanel Grid.Column="1" Background="#EEE"></StackPanel>
|
||||||
|
|
||||||
|
<Grid Margin="10,10,0,0" Grid.Column="2">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="36" />
|
||||||
|
<RowDefinition Height="36" />
|
||||||
|
<RowDefinition Height="36" />
|
||||||
|
<RowDefinition Height="36" />
|
||||||
|
<RowDefinition Height="36" />
|
||||||
|
<RowDefinition Height="36" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="50" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="120" />
|
||||||
|
<ColumnDefinition Width="200" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<StackPanel Grid.Column="2">
|
<Label Content="{DynamicResource TrojanGoDomain}" Grid.Row="0" Grid.Column="0" />
|
||||||
<Grid Margin="10">
|
<TextBox Text="{Binding Settings.Domain}" Grid.Row="0" Grid.Column="1" />
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
<RowDefinition Height="36" />
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="120" />
|
|
||||||
<ColumnDefinition Width="200" />
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<Label Content="{DynamicResource TrojanGoDomain}" Grid.Row="0" Grid.Column="0" />
|
<Label Content="{DynamicResource TrojanGoPort}" Grid.Row="1" Grid.Column="0" />
|
||||||
<TextBox Text="{Binding Settings.Domain}" Grid.Row="0" Grid.Column="1" />
|
<TextBox Text="{Binding Settings.Port}" Grid.Row="1" Grid.Column="1" />
|
||||||
|
|
||||||
<Label Content="{DynamicResource TrojanGoPort}" Grid.Row="1" Grid.Column="0" />
|
<Label Content="{DynamicResource TrojanGoPassword}" Grid.Row="2" Grid.Column="0" />
|
||||||
<TextBox Text="{Binding Settings.Port}" Grid.Row="1" Grid.Column="1" />
|
<TextBox Text="{Binding Settings.Password}" Grid.Row="2" Grid.Column="1" />
|
||||||
|
|
||||||
<Label Content="{DynamicResource TrojanGoPassword}" Grid.Row="2" Grid.Column="0" />
|
<Label Content="{DynamicResource TrojanGoMaskDomain}" Grid.Row="3" Grid.Column="0" />
|
||||||
<TextBox Text="{Binding Settings.Password}" Grid.Row="2" Grid.Column="1" />
|
<TextBox Text="{Binding Settings.MaskDomain}" Grid.Row="3" Grid.Column="1" />
|
||||||
|
|
||||||
<Label Content="{DynamicResource TrojanGoMaskDomain}" Grid.Row="3" Grid.Column="0" />
|
<Label Content="{DynamicResource TrojanGoWebSocketPath}" Grid.Row="4" Grid.Column="0" />
|
||||||
<TextBox Text="{Binding Settings.MaskDomain}" Grid.Row="3" Grid.Column="1" />
|
<TextBox Text="{Binding Settings.WebSocketPath}" Grid.Row="4" Grid.Column="1" />
|
||||||
|
|
||||||
<Label Content="{DynamicResource TrojanGoWebSocketPath}" Grid.Row="4" Grid.Column="0" />
|
|
||||||
<TextBox Text="{Binding Settings.WebSocketPath}" Grid.Row="4" Grid.Column="1" />
|
|
||||||
|
|
||||||
|
|
||||||
<Label Content="{DynamicResource XrayWithTLS}" Width="120" Grid.Row="5" Grid.Column="0" />
|
<Label Content="{DynamicResource XrayWithTLS}" Width="120" Grid.Row="5" Grid.Column="0" />
|
||||||
<CheckBox IsChecked="{Binding Path=Settings.WithTLS}"
|
<CheckBox IsChecked="{Binding Path=Settings.WithTLS}"
|
||||||
Grid.Row="5"
|
Grid.Row="5"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Content="{DynamicResource XrayWithTLSDesc}"
|
Content="{DynamicResource XrayWithTLSDesc}"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center" />
|
||||||
</Grid>
|
|
||||||
|
|
||||||
|
<Border Grid.Row="7"
|
||||||
<Border Grid.Row="1"
|
Grid.ColumnSpan="3"
|
||||||
BorderBrush="#eee"
|
BorderBrush="#eee"
|
||||||
BorderThickness="0,1,0,0">
|
BorderThickness="0,1,0,0">
|
||||||
<StackPanel Orientation="Horizontal"
|
<StackPanel Orientation="Horizontal"
|
||||||
Margin="0,20,0,0"
|
Height="50"
|
||||||
HorizontalAlignment="Right">
|
HorizontalAlignment="Right">
|
||||||
<Button Content="{DynamicResource Save}"
|
<Button Content="{DynamicResource Save}"
|
||||||
Command="{Binding SaveCommand}"
|
Command="{Binding SaveCommand}"
|
||||||
@ -86,6 +86,6 @@
|
|||||||
Margin="20,0,40,0" />
|
Margin="20,0,40,0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
</StackPanel>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</views:MvxWindow>
|
</views:MvxWindow>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
Icon="/Resources/ProxySU.ico"
|
Icon="/Resources/ProxySU.ico"
|
||||||
BorderThickness="0,1,0,0"
|
BorderThickness="0,1,0,0"
|
||||||
BorderBrush="#EEE"
|
BorderBrush="#EEE"
|
||||||
Title="V2ray编辑配置" Height="610" Width="1015">
|
Title="V2ray编辑配置" Height="640" Width="1015">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="310" />
|
<ColumnDefinition Width="310" />
|
||||||
@ -25,41 +25,39 @@
|
|||||||
|
|
||||||
<StackPanel Grid.Column="1" Background="#EEE"></StackPanel>
|
<StackPanel Grid.Column="1" Background="#EEE"></StackPanel>
|
||||||
|
|
||||||
<StackPanel Grid.Column="2">
|
<Grid Grid.Column="2">
|
||||||
<Grid>
|
<Grid.RowDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="500" />
|
<RowDefinition Height="50" />
|
||||||
<RowDefinition Height="80" />
|
</Grid.RowDefinitions>
|
||||||
</Grid.RowDefinitions>
|
|
||||||
|
|
||||||
<ScrollViewer Name="scroll"
|
<ScrollViewer Name="scroll"
|
||||||
Padding="10"
|
Padding="10"
|
||||||
Height="500"
|
Height="auto"
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
HorizontalScrollBarVisibility="Auto"
|
HorizontalScrollBarVisibility="Auto"
|
||||||
VerticalScrollBarVisibility="Auto" >
|
VerticalScrollBarVisibility="Auto" >
|
||||||
<ctrl:V2raySettingsControl />
|
<ctrl:V2raySettingsControl />
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
|
|
||||||
<Border Grid.Row="1"
|
<Border Grid.Row="1"
|
||||||
BorderBrush="#eee"
|
BorderBrush="#eee"
|
||||||
BorderThickness="0,1,0,0">
|
BorderThickness="0,1,0,0">
|
||||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Height="50">
|
||||||
<Button Content="{DynamicResource Save}"
|
<Button Content="{DynamicResource Save}"
|
||||||
Command="{Binding SaveCommand}"
|
Command="{Binding SaveCommand}"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Padding="10,5" />
|
Padding="10,5" />
|
||||||
|
|
||||||
<Button Content="{DynamicResource SaveAndInstall}"
|
<Button Content="{DynamicResource SaveAndInstall}"
|
||||||
Command="{Binding SaveAndInstallCommand}"
|
Command="{Binding SaveAndInstallCommand}"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Padding="10,5"
|
Padding="10,5"
|
||||||
Margin="20,0,40,0" />
|
Margin="20,0,40,0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</views:MvxWindow>
|
</views:MvxWindow>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using MvvmCross.Platforms.Wpf.Views;
|
using MvvmCross.Platforms.Wpf.Presenters.Attributes;
|
||||||
|
using MvvmCross.Platforms.Wpf.Views;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -18,6 +19,7 @@ namespace ProxySuper.WPF.Views.V2ray
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// V2rayEditorView.xaml 的交互逻辑
|
/// V2rayEditorView.xaml 的交互逻辑
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[MvxWindowPresentation]
|
||||||
public partial class V2rayEditorView : MvxWindow
|
public partial class V2rayEditorView : MvxWindow
|
||||||
{
|
{
|
||||||
public V2rayEditorView()
|
public V2rayEditorView()
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
|
using MvvmCross.Platforms.Wpf.Presenters.Attributes;
|
||||||
using MvvmCross.Platforms.Wpf.Views;
|
using MvvmCross.Platforms.Wpf.Views;
|
||||||
using ProxySuper.Core.Models.Projects;
|
using ProxySuper.Core.Models.Projects;
|
||||||
using ProxySuper.Core.ViewModels;
|
using ProxySuper.Core.ViewModels;
|
||||||
@ -15,6 +16,7 @@ namespace ProxySuper.WPF.Views
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// XrayInfoView.xaml 的交互逻辑
|
/// XrayInfoView.xaml 的交互逻辑
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[MvxWindowPresentation()]
|
||||||
public partial class XrayConfigView : MvxWindow
|
public partial class XrayConfigView : MvxWindow
|
||||||
{
|
{
|
||||||
public XrayConfigView()
|
public XrayConfigView()
|
||||||
@ -116,16 +118,16 @@ namespace ProxySuper.WPF.Views
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QRCodeGenerator qrGenerator = new QRCodeGenerator();
|
var qrGenerator = new QRCodeGenerator();
|
||||||
QRCodeData qrCodeData = qrGenerator.CreateQrCode(shareLink, QRCodeGenerator.ECCLevel.Q);
|
var qrCodeData = qrGenerator.CreateQrCode(shareLink, QRCodeGenerator.ECCLevel.Q);
|
||||||
QRCode qrCode = new QRCode(qrCodeData);
|
var qrCode = new QRCode(qrCodeData);
|
||||||
|
|
||||||
Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
var qrCodeImage = qrCode.GetGraphic(20);
|
||||||
MemoryStream ms = new MemoryStream();
|
var ms = new MemoryStream();
|
||||||
qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
|
qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
|
||||||
byte[] bytes = ms.GetBuffer();
|
byte[] bytes = ms.GetBuffer();
|
||||||
ms.Close();
|
ms.Close();
|
||||||
BitmapImage image = new BitmapImage();
|
var image = new BitmapImage();
|
||||||
image.BeginInit();
|
image.BeginInit();
|
||||||
image.StreamSource = new MemoryStream(bytes);
|
image.StreamSource = new MemoryStream(bytes);
|
||||||
image.EndInit();
|
image.EndInit();
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
|
|
||||||
<ScrollViewer Name="scroll"
|
<ScrollViewer Name="scroll"
|
||||||
Padding="10"
|
Padding="10"
|
||||||
Grid.Row="0"
|
|
||||||
Height="auto"
|
Height="auto"
|
||||||
|
Grid.Row="0"
|
||||||
HorizontalScrollBarVisibility="Auto"
|
HorizontalScrollBarVisibility="Auto"
|
||||||
VerticalScrollBarVisibility="Auto" >
|
VerticalScrollBarVisibility="Auto" >
|
||||||
<ctrl:XraySettingsControl />
|
<ctrl:XraySettingsControl />
|
||||||
|
@ -7,7 +7,7 @@ namespace ProxySuper.WPF.Views
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// XrayEditorView.xaml 的交互逻辑
|
/// XrayEditorView.xaml 的交互逻辑
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[MvxWindowPresentation(Identifier = nameof(XrayEditorView), Modal = false)]
|
[MvxWindowPresentation()]
|
||||||
public partial class XrayEditorView : MvxWindow
|
public partial class XrayEditorView : MvxWindow
|
||||||
{
|
{
|
||||||
public XrayEditorView()
|
public XrayEditorView()
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using MvvmCross.Platforms.Wpf.Views;
|
using MvvmCross.Platforms.Wpf.Presenters.Attributes;
|
||||||
|
using MvvmCross.Platforms.Wpf.Views;
|
||||||
using MvvmCross.ViewModels;
|
using MvvmCross.ViewModels;
|
||||||
using ProxySuper.Core.ViewModels;
|
using ProxySuper.Core.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
@ -20,6 +21,7 @@ namespace ProxySuper.WPF.Views
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// XrayInstallView.xaml 的交互逻辑
|
/// XrayInstallView.xaml 的交互逻辑
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[MvxWindowPresentation()]
|
||||||
public partial class XrayInstallView : MvxWindow
|
public partial class XrayInstallView : MvxWindow
|
||||||
{
|
{
|
||||||
public XrayInstallView()
|
public XrayInstallView()
|
||||||
|
Loading…
Reference in New Issue
Block a user