-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMainWindow.xaml
133 lines (124 loc) · 8.54 KB
/
MainWindow.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<Window x:Class="RegularTool.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:RegularTool"
xmlns:form="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:vm="clr-namespace:RegularTool.ViewModel"
xmlns:edit="http://icsharpcode.net/sharpdevelop/avalonedit"
mc:Ignorable="d"
Title="正则小助手" Height="550" Width="960" WindowStartupLocation="CenterScreen">
<Window.DataContext>
<Binding Source="{x:Static vm:MainVm.Instance}" Path=""/>
</Window.DataContext>
<Window.Resources>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="250" Width="250"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid Margin="10">
<DockPanel>
<TextBlock Text="语法:" DockPanel.Dock="Top"/>
<TreeView SelectedItemChanged="TreeView_SelectedItemChanged" ItemsSource="{Binding GrammarModels}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="False" DockPanel.Dock="Bottom" Margin="0 10 0 0" ItemTemplate="{StaticResource ItemNode}" Style="{StaticResource DefaultTreeView}"/>
</DockPanel>
</Grid>
<GridSplitter Width="5" Background="White"/>
<TabControl Grid.Column="1">
<TabItem Header="正则匹配" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox x:Name="txtRegular" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" MinHeight="81" DockPanel.Dock="Top" AcceptsReturn="True">
</TextBox>
<StackPanel Grid.Row="1" Margin="0 5" DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal" Height="30">
<Button x:Name="btnMatch" Click="BtnMatch_Click" Content="正则匹配" Padding="5 0"/>
<RadioButton x:Name="rbCaseSencitive" Content="忽略大小写" VerticalAlignment="Center" Margin="20 0 0 0" />
<RadioButton x:Name="rbSingle" Content="单行模式" VerticalAlignment="Center" Margin="20 0 0 0"/>
<RadioButton x:Name="rbMulti" Content="多行模式" IsChecked="True" VerticalAlignment="Center" Margin="20 0 0 0"/>
<Button x:Name="btnGenerateCode" Content="生成代码" Click="BtnGenerateCode_Click" Padding="5 0" Margin="20 0 0 0"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Height="30" Margin="0 5">
<Button x:Name="btnReplacce" Click="BtnReplacce_Click" Content="正则替换" Padding="5 0"/>
<TextBox x:Name="txtReplace" Width="200" Margin="20 0 0 0" Height="25" VerticalAlignment="Center" VerticalContentAlignment="Center"/>
</StackPanel>
</StackPanel>
<TabControl x:Name="tabOption" Grid.Row="2">
<TabItem Header="语法提示">
<TextBox Text="{Binding SelectGrammar.Content}" IsReadOnly="True" TextWrapping="Wrap" AcceptsReturn="True"/>
</TabItem>
<TabItem Header="测试文本">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="10">
<TextBlock Text="关键字:" VerticalAlignment="Center"/>
<TextBox x:Name="txtSearch" Width="200" VerticalContentAlignment="Center"/>
<Button x:Name="btnSearch" Click="BtnSearch_Click" Content="搜索" Padding="5" VerticalAlignment="Center" Margin="10 0 0 0" >
<Button.Style>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" SnapsToDevicePixels="True" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}">
<DockPanel>
<Image Source="/Images/search.png" Width="16" DockPanel.Dock="Left" VerticalAlignment="Center"/>
<TextBlock Text="{TemplateBinding Content}" DockPanel.Dock="Right" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5 0 0 0"/>
</DockPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="white"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Opacity" Value="0.6"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</StackPanel>
<WindowsFormsHost Grid.Row="1" Background="White">
<form:RichTextBox x:Name="txtContent"/>
</WindowsFormsHost>
</Grid>
</TabItem>
<TabItem Header="匹配结果">
<DataGrid x:Name="dataResult" CanUserAddRows="False">
</DataGrid>
</TabItem>
<TabItem Header="替换结果">
<TextBox x:Name="txtReplaceResult" TextWrapping="Wrap" IsReadOnly="True" >
</TextBox>
</TabItem>
<TabItem Header="生成代码">
<edit:TextEditor x:Name="txtCodeEdit" SyntaxHighlighting="C#" />
</TabItem>
</TabControl>
</Grid>
</TabItem>
</TabControl>
<StatusBar Grid.Row="1" Background="White" Grid.ColumnSpan="2">
<StatusBarItem >提示:</StatusBarItem>
<StatusBarItem >匹配数量:</StatusBarItem>
<StatusBarItem x:Name="statusMatchCount" Content="0"/>
<StatusBarItem >子表达式数量:</StatusBarItem>
<StatusBarItem x:Name="statusMatchSubCount" Content="0"/>
</StatusBar>
</Grid>
</Window>