268 lines
11 KiB
XML
268 lines
11 KiB
XML
<reactiveui:ReactiveWindow
|
|
x:Class="v2rayN.Views.RoutingRuleSettingWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:conv="clr-namespace:v2rayN.Converters"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:reactiveui="http://reactiveui.net"
|
|
xmlns:resx="clr-namespace:v2rayN.Resx"
|
|
xmlns:vms="clr-namespace:v2rayN.ViewModels"
|
|
Title="{x:Static resx:ResUI.menuRoutingRuleSetting}"
|
|
Width="900"
|
|
Height="700"
|
|
x:TypeArguments="vms:RoutingRuleSettingViewModel"
|
|
Background="{DynamicResource MaterialDesignPaper}"
|
|
FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}"
|
|
ResizeMode="NoResize"
|
|
TextElement.FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}"
|
|
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
|
|
TextOptions.TextFormattingMode="Display"
|
|
TextOptions.TextRenderingMode="Auto"
|
|
WindowStartupLocation="CenterScreen"
|
|
mc:Ignorable="d">
|
|
<DockPanel>
|
|
<ToolBarTray DockPanel.Dock="Top">
|
|
<ToolBar
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
ClipToBounds="True"
|
|
Style="{StaticResource MaterialDesignToolBar}">
|
|
<Button x:Name="menuRuleAdd">
|
|
<StackPanel Orientation="Horizontal">
|
|
<materialDesign:PackIcon Margin="0,0,8,0" Kind="Plus" />
|
|
<TextBlock Style="{StaticResource ToolbarTextBlock}" Text="{x:Static resx:ResUI.menuRuleAdd}" />
|
|
</StackPanel>
|
|
</Button>
|
|
<Separator />
|
|
<Button x:Name="menuImportRulesFromFile">
|
|
<StackPanel Orientation="Horizontal">
|
|
<materialDesign:PackIcon Margin="0,0,8,0" Kind="Import" />
|
|
<TextBlock Style="{StaticResource ToolbarTextBlock}" Text="{x:Static resx:ResUI.menuImportRulesFromFile}" />
|
|
</StackPanel>
|
|
</Button>
|
|
<Separator />
|
|
<Button x:Name="menuImportRulesFromClipboard">
|
|
<StackPanel Orientation="Horizontal">
|
|
<materialDesign:PackIcon Margin="0,0,8,0" Kind="Import" />
|
|
<TextBlock Style="{StaticResource ToolbarTextBlock}" Text="{x:Static resx:ResUI.menuImportRulesFromClipboard}" />
|
|
</StackPanel>
|
|
</Button>
|
|
<Separator />
|
|
<Button x:Name="menuImportRulesFromUrl">
|
|
<StackPanel Orientation="Horizontal">
|
|
<materialDesign:PackIcon Margin="0,0,8,0" Kind="Import" />
|
|
<TextBlock Style="{StaticResource ToolbarTextBlock}" Text="{x:Static resx:ResUI.menuImportRulesFromUrl}" />
|
|
</StackPanel>
|
|
</Button>
|
|
</ToolBar>
|
|
</ToolBarTray>
|
|
|
|
<Grid
|
|
Margin="16"
|
|
HorizontalAlignment="Center"
|
|
DockPanel.Dock="Bottom">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="600" />
|
|
<ColumnDefinition Width="100" />
|
|
<ColumnDefinition Width="100" />
|
|
</Grid.ColumnDefinitions>
|
|
<Button
|
|
x:Name="btnSave"
|
|
Grid.Column="1"
|
|
Margin="4"
|
|
Content="{x:Static resx:ResUI.TbConfirm}"
|
|
Cursor="Hand"
|
|
Style="{StaticResource DefButton}" />
|
|
<Button
|
|
x:Name="btnCancel"
|
|
Grid.Column="2"
|
|
Margin="4"
|
|
Content="{x:Static resx:ResUI.TbCancel}"
|
|
Cursor="Hand"
|
|
IsCancel="true"
|
|
Style="{StaticResource DefButton}" />
|
|
</Grid>
|
|
|
|
<Grid Margin="8" DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock
|
|
Grid.Row="0"
|
|
Grid.Column="0"
|
|
Margin="4"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource ToolbarTextBlock}"
|
|
Text="{x:Static resx:ResUI.LvRemarks}" />
|
|
<TextBox
|
|
x:Name="txtRemarks"
|
|
Grid.Row="0"
|
|
Grid.Column="1"
|
|
Width="400"
|
|
Margin="4"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
AcceptsReturn="True"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="1"
|
|
Grid.Column="0"
|
|
Margin="4"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource ToolbarTextBlock}"
|
|
Text="{x:Static resx:ResUI.TbdomainStrategy}" />
|
|
<ComboBox
|
|
x:Name="cmbdomainStrategy"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
Width="200"
|
|
Margin="4"
|
|
Style="{StaticResource DefComboBox}" />
|
|
|
|
<TextBlock
|
|
Grid.Row="2"
|
|
Grid.Column="0"
|
|
Margin="4"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource ToolbarTextBlock}"
|
|
Text="{x:Static resx:ResUI.LvUrl}" />
|
|
<TextBox
|
|
x:Name="txtUrl"
|
|
Grid.Row="2"
|
|
Grid.Column="1"
|
|
Width="600"
|
|
Margin="4"
|
|
VerticalAlignment="Top"
|
|
AcceptsReturn="True"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="3"
|
|
Grid.Column="0"
|
|
Margin="4"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource ToolbarTextBlock}"
|
|
Text="{x:Static resx:ResUI.LvCustomIcon}" />
|
|
<TextBox
|
|
x:Name="txtCustomIcon"
|
|
Grid.Row="3"
|
|
Grid.Column="1"
|
|
Width="600"
|
|
Margin="4"
|
|
VerticalAlignment="Top"
|
|
AcceptsReturn="True"
|
|
TextWrapping="Wrap" />
|
|
<Button
|
|
x:Name="btnBrowse"
|
|
Grid.Row="3"
|
|
Grid.Column="2"
|
|
Width="100"
|
|
Margin="2,0,8,0"
|
|
Click="btnBrowse_Click"
|
|
Content="{x:Static resx:ResUI.TbBrowse}"
|
|
Style="{StaticResource DefButton}" />
|
|
|
|
</Grid>
|
|
|
|
<TabControl x:Name="tabAdvanced">
|
|
<TabItem HorizontalAlignment="Left" Header="{x:Static resx:ResUI.menuRuleList}">
|
|
<DataGrid
|
|
x:Name="lstRules"
|
|
AutoGenerateColumns="False"
|
|
BorderThickness="1"
|
|
CanUserAddRows="False"
|
|
CanUserResizeRows="False"
|
|
CanUserSortColumns="False"
|
|
EnableRowVirtualization="True"
|
|
GridLinesVisibility="All"
|
|
HeadersVisibility="Column"
|
|
IsReadOnly="True"
|
|
Style="{StaticResource DefDataGrid}">
|
|
<DataGrid.ContextMenu>
|
|
<ContextMenu Style="{StaticResource DefContextMenu}">
|
|
<MenuItem
|
|
x:Name="menuRuleAdd2"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuRuleAdd}" />
|
|
<MenuItem
|
|
x:Name="menuRuleRemove"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuRuleRemove}" />
|
|
<MenuItem
|
|
x:Name="menuRuleSelectAll"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Click="menuRuleSelectAll_Click"
|
|
Header="{x:Static resx:ResUI.menuSelectAll}" />
|
|
<MenuItem
|
|
x:Name="menuRuleExportSelected"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuRuleExportSelected}" />
|
|
<Separator />
|
|
<MenuItem
|
|
x:Name="menuMoveTop"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuMoveTop}" />
|
|
<MenuItem
|
|
x:Name="menuMoveUp"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuMoveUp}" />
|
|
<MenuItem
|
|
x:Name="menuMoveDown"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuMoveDown}" />
|
|
<MenuItem
|
|
x:Name="menuMoveBottom"
|
|
Height="{StaticResource MenuItemHeight}"
|
|
Header="{x:Static resx:ResUI.menuMoveBottom}" />
|
|
</ContextMenu>
|
|
</DataGrid.ContextMenu>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn
|
|
Width="120"
|
|
Binding="{Binding outboundTag}"
|
|
Header="outboundTag" />
|
|
<DataGridTextColumn
|
|
Width="100"
|
|
Binding="{Binding port}"
|
|
Header="port" />
|
|
<DataGridTextColumn
|
|
Width="100"
|
|
Binding="{Binding protocols}"
|
|
Header="protocol" />
|
|
<DataGridTextColumn
|
|
Width="120"
|
|
Binding="{Binding inboundTags}"
|
|
Header="inboundTag" />
|
|
<DataGridTextColumn
|
|
Width="150"
|
|
Binding="{Binding domains}"
|
|
Header="domain" />
|
|
<DataGridTextColumn
|
|
Width="150"
|
|
Binding="{Binding ips}"
|
|
Header="ip" />
|
|
<DataGridTextColumn
|
|
Width="80"
|
|
Binding="{Binding enabled}"
|
|
Header="enabled" />
|
|
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</TabItem>
|
|
</TabControl>
|
|
</DockPanel>
|
|
|
|
</reactiveui:ReactiveWindow>
|