-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainWindow.xaml
689 lines (689 loc) · 63.8 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
<Window x:Class="SNIBypassGUI.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:tb="http://www.hardcodet.net/taskbar"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:local="clr-namespace:SNIBypassGUI"
mc:Ignorable="d"
Loaded="Window_Loaded"
Title="SNIBypassGUI" Height="450" Width="800" ResizeMode="NoResize" Closing="Window_Closing" Background="Transparent" WindowStartupLocation="CenterScreen" WindowStyle="None">
<Grid x:Name="MainPage">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.Background>
<ImageBrush Stretch="UniformToFill" ImageSource="/Resources/DefaultBkg.png"/>
</Grid.Background>
<tb:TaskbarIcon x:Name="TaskbarIcon" LeftClickCommand="{Binding _TaskbarIconLeftClickCommand}" DoubleClickCommand="{Binding _TaskbarIconLeftClickCommand}" IconSource="/Resources/icon.ico" ToolTipText="SNIBypassGUI">
<tb:TaskbarIcon.TrayToolTip>
<Border BorderBrush="#FF46FFD0" Background="White" BorderThickness="1" CornerRadius="4" Opacity="0.8" Width="250" Height="auto">
<StackPanel>
<TextBlock Foreground="#FF2BFF00" Text="SNIBypassGUI" Margin="5,5,5,5" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" FontSize="16"/>
<TextBlock x:Name="ReferenceTextBlock" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="14" FontWeight="Bold">
<Run Foreground="#FF00FFED" Text="服务状态:"/>
<Run x:Name="TaskbarIconServiceST" Text="主服务和DNS服务未运行" Foreground="Red"/>
</TextBlock>
<TextBlock Foreground="DeepPink" x:Name="TaskbarIconYiyan" Margin="5,0,5,5" TextWrapping="Wrap" Text="行远自迩,登高自卑。" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Foreground="DarkViolet" x:Name="TaskbarIconYiyanFrom" Margin="5,0,5,5" TextWrapping="Wrap" Text="—— 戴圣「礼记」" TextAlignment="Right" VerticalAlignment="Center" FontStyle="Italic"/>
</StackPanel>
</Border>
</tb:TaskbarIcon.TrayToolTip>
<tb:TaskbarIcon.ContextMenu>
<ContextMenu Opacity="0.8">
<ContextMenu.Background>
<ImageBrush Stretch="UniformToFill" ImageSource="/Resources/MenuBkg.png"/>
</ContextMenu.Background>
<MenuItem Foreground="White" x:Name="MenuItem_ShowMainWin" Header="显示主窗口" MouseEnter="MenuItem_MouseEnter" MouseLeave="MenuItem_MouseLeave" Click="MenuItem_ShowMainWin_Click" FontWeight="Bold">
<MenuItem.Icon>
<Viewbox Width="16" Height="16">
<Path Data="{StaticResource HomeGeometry}" Stretch="Uniform" Fill="#00a2ff" Width="138" Height="138" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle="0" />
<ScaleTransform ScaleX="1" ScaleY="1" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Viewbox>
</MenuItem.Icon>
</MenuItem>
<MenuItem Foreground="White" x:Name="MenuItem_StartService" Header="启动服务" MouseEnter="MenuItem_MouseEnter" MouseLeave="MenuItem_MouseLeave" Click="MenuItem_StartService_Click" FontWeight="Bold">
<MenuItem.Icon>
<Viewbox Width="16" Height="16">
<Path Data="{StaticResource StartGeometry}" Stretch="Uniform" Fill="#FF2BFF00" Width="138" Height="138" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle="0" />
<ScaleTransform ScaleX="1" ScaleY="1" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Viewbox>
</MenuItem.Icon>
</MenuItem>
<MenuItem Foreground="White" x:Name="MenuItem_StopService" Header="停止服务" MouseEnter="MenuItem_MouseEnter" MouseLeave="MenuItem_MouseLeave" Click="MenuItem_StopService_Click" FontWeight="Bold">
<MenuItem.Icon>
<Viewbox Width="16" Height="16">
<Path Data="{StaticResource StopGeometry}" Stretch="Uniform" Fill="Red" Width="138" Height="138" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle="0" />
<ScaleTransform ScaleX="1" ScaleY="1" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Viewbox>
</MenuItem.Icon>
</MenuItem>
<MenuItem Foreground="White" x:Name="MenuItem_ExitTool" Header="退出工具" MouseEnter="MenuItem_MouseEnter" MouseLeave="MenuItem_MouseLeave" Click="MenuItem_ExitTool_Click" FontWeight="Bold">
<MenuItem.Icon>
<Viewbox Width="16" Height="16">
<Path Data="{StaticResource ExitGeometry}" Stretch="Uniform" Fill="#FFFF00C7" Width="138" Height="138" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle="0" />
<ScaleTransform ScaleX="1" ScaleY="1" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Viewbox>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
<hc:TransitioningContentControl TransitionMode="Top2BottomWithFade" Grid.Row="0">
<Border x:Name="TopBar" Margin="20,10,20,0" Background="#70FFFFFF" BorderThickness="1.5,1.5,1.5,1.5" CornerRadius="5,5,5,5">
<Border.BorderBrush>
<LinearGradientBrush EndPoint="1,0">
<GradientStop Color="#FFCE00FF"/>
<GradientStop Color="#FF0057CC" Offset="1"/>
</LinearGradientBrush>
</Border.BorderBrush>
<TextBlock Margin="5" x:Name="WindowTitle" TextWrapping="Wrap" Text="SNIBypassGUI" FontSize="21" Foreground="#FFEC3FFF" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold" TextAlignment="Center"/>
</Border>
</hc:TransitioningContentControl>
<Grid Grid.Row="1">
<Grid.Background>
<ImageBrush/>
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<hc:TransitioningContentControl TransitionMode="Top2BottomWithFade" Grid.Column="0">
<RichTextBox ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="20,10,10,20" Background="#70FFFFFF" BorderBrush="White" IsReadOnly="True" FontFamily="{StaticResource AaManYuShouXieTi}">
<FlowDocument>
<Paragraph TextAlignment="Center">
<Span FontSize="30" Foreground="#FF00AD8A">
<Run Text="说 明" FontWeight="Bold" />
</Span>
<LineBreak/>
<Span FontSize="18" Foreground="#FF1C65DC">
<Run Text="使用过程中遇到任何问题请加群" />
<Run Text="946813204" FontSize="22"/>
</Span>
<LineBreak/>
<Span FontSize="19" Foreground="#FFFF3434">
<Run Text="请关闭所有杀毒软件," />
<LineBreak/>
<Run Text="否则程序可能会出现闪退等异常情况!" FontSize="20"/>
</Span>
<LineBreak/>
<Span FontSize="19" Foreground="#FFFF3434">
<Run Text="请退出并停止使用 Steamcommunity 302 等类似软件," />
<LineBreak/>
<Run Text="否则可能会出现无法访问网页等异常情况!" FontSize="20"/>
</Span>
</Paragraph>
<Paragraph TextAlignment="Left">
<Span>
<Run Text="➲ DNS(Domain Name System)是什么?" FontSize="24" Foreground="#FF00D88E" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" DNS可以理解为互联网中的“电话簿”。它的作用是将我们常用的域名(例如:www.example.com)转换成计算机可以理解的IP地址(例如:192.0.2.1),因为计算机是通过IP地址来进行通信的。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="-220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFF74D73"/>
<GradientStop Color="#FF7A0EC8" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 假设你想给一个朋友打电话,但你手上只有朋友的名字(比如“李华”),而没有电话号码。你去查找电话簿,输入“李明”的名字,电话簿会告诉你李明的电话号码。然后你就可以拨打这个电话号码,打通电话。“李华”就像是一个网站的域名(比如:www.example.com),电话号码就是网站的IP地址,而电话簿就是DNS,它负责将域名转换成IP地址。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFC81F84"/>
<GradientStop Color="#FF7A0EC8" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 当你在浏览器中输入网址时,DNS会帮助你找到对应的IP地址,然后你的计算机就能连接到正确的网站。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="-220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF7D08E2"/>
<GradientStop Color="#FF1705F3" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ SNI(Server Name Indication)是什么?" FontSize="24" Foreground="#FF00BCFB" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" SNI是TLS/SSL协议的一部分,用于在建立加密连接之前,客户端向服务器说明自己想连接哪个具体网站。简而言之,SNI就像是你在酒店登记时告诉前台你要去哪个房间,这样前台才能为你提供正确的房间钥匙。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFB700FF"/>
<GradientStop Color="#FF234CF3" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ GFW(Great Firewall,简称“防火长城”)是什么?" FontSize="24" Foreground="#FF8738FF" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" GFW是中国的一个网络审查和过滤系统,旨在限制和监控从中国境内访问全球互联网的流量。它的主要功能是阻止或限制中国用户访问某些外国网站和服务,同时监控、审查互联网上的信息流动。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFB700FF"/>
<GradientStop Color="#FF234CF3" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" GFW通过多种技术手段工作,如DNS劫持、IP封锁、深度包检测(DPI)、URL过滤等。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF6F24F9"/>
<GradientStop Color="#FF00BCFB" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ DNS劫持是什么?" FontSize="24" Foreground="#FF00D88E" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" DNS劫持就像是你给别人发了一条短信,里面有一个地址(比如:“去www.example.com”)。但是,在你发出去之前,短信被某人篡改了,发给了一个假地址。结果你到达的地方并不是你想去的地方,而是一个假的或被封锁的地方。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF6F24F9"/>
<GradientStop Color="#FF00BCFB" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" DNS污染是一种类似于DNS劫持的技术网络审查技术,它通过篡改或“污染”DNS查询结果,阻止用户访问特定的网站。但污染的方式更为普遍且持续,可以影响大量的DNS请求。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFB700FF"/>
<GradientStop Color="#FF234CF3" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ SNI阻断是什么?" FontSize="24" Foreground="#FF7E38FF" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" 当用户访问一个使用HTTPS的网站,客户端在发起SSL/TLS握手时,会将目标网站的域名发送给服务器。中间的网络设备可以读取这些SNI信息。根据SNI信息,网络服务提供商可能选择阻止与特定域名的连接请求。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFF74D73"/>
<GradientStop Color="#FF7A0EC8" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ SNI明文传输,是否安全?" FontSize="24" Foreground="#FFF74D73" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" 由于SNI信息并未加密,审查者可以识别出用户访问的网站域名。现已被部分国家用于互联网审查,如GFW和韩国的KCSC。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFF74D73"/>
<GradientStop Color="#FF7A0EC8" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 为了解决这个问题,一种旨在解决主机名称泄漏问题的TLS扩充协议 —— ESNI(Encrypted Server Name Indication)出现了。但自2020年7月下旬起,GFW开始封锁所有ESNI的TLS通信。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFA04DF7"/>
<GradientStop Color="#FF0E11C8" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ 本软件如何绕过GFW对部分站点的封锁?" FontSize="24" Foreground="#FF38C4FF" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" 通过本地DNS服务或系统hosts文件将被封锁的域名及子域名指向127.0.0.1,有关请求会先到达Nginx代理服务器。Nginx代理服务器会与目标服务器建立加密连接,并将实际的SNI信息传递给目标服务器。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF6F24F9"/>
<GradientStop Color="#FF00BCFB" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 这时,GFW只能看到加密流量,而无法直接看到真实的SNI信息,因为握手已经发生在Nginx和目标服务器之间,而不是直接在浏览器和目标服务器之间。因此,GFW不会基于SNI阻止请求,即域前置。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF6F24F9"/>
<GradientStop Color="#FF00BCFB" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 域前置通过SNI中使用虚假无害的域名信息,已经被TLS加密的应用层才使用真实的域名信息,将真实流量隐藏在看似无害的流量中,从而使审查者无法区别出来。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFB700FF"/>
<GradientStop Color="#FF234CF3" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ CDN(Content Delivery Network)是什么?" FontSize="24" Foreground="#FFFBCF00" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" CDN是一种通过将网站内容缓存到多个分布在不同地区的服务器上,以提高用户访问速度的技术。简单来说,CDN的作用就是让网站的数据更快、更稳定地传递到用户。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF6F24F9"/>
<GradientStop Color="#FF00BCFB" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 就像你去一家图书馆借书。如果这本书只有一个库存在美国,你必须跨大洋才能借到。但是,如果这本书在世界各地的图书馆都有了,那么你只需要去最近的图书馆就能借到,节省了时间,效率更高。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF6F24F9"/>
<GradientStop Color="#FF00BCFB" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<LineBreak/>
<Run Text="➲ 为什么无法支持部分站点?" FontSize="24" Foreground="#FFFFCA38" FontWeight="Bold"/>
<LineBreak/>
<Run Text=" 一些较大型的网站为了降低带宽成本和提升全球范围的访问速度与安全性,采用了像Amazon CloudFront、Cloudflare这样的大型CDN业务。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="-220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFF97224"/>
<GradientStop Color="#FFFBCF00" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 但不幸的是,并非所有CDN都支持域前置技术。Cloudflare在2016年的一些修改让基于其CDN的域前置不再工作。Google于2018年4月宣布将在Google应用服务引擎禁用域前置,称这从未是Google有意支持的一项功能。亚马逊公司也在不久后决定停用CloudFront上的域前置兼容,表示这已被视为违反亚马逊网络服务系统(AWS)服务条款。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="-220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFF9E724"/>
<GradientStop Color="#FFCBFB00" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 不完全统计,目前兼容域前置的CDN有Automattic、CDN77、Fastly、StackPath和Incapsula、Microsoft Azure。若被封锁站点使用了不兼容域前置技术的CDN,则需要找到未被封锁的源站IP,这在大多数情况下是困难的。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="-220" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FFBDF924"/>
<GradientStop Color="#FFFBCF00" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
<LineBreak/>
<Run Text=" 鉴于此,我们十分欢迎您在该方面上做出有关贡献。您可以直接发送邮件给我们,或通过在Github上提交Issue。" FontSize="18">
<Run.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="130" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FF2B24F9"/>
<GradientStop Color="#FFBD01D2" Offset="1"/>
</LinearGradientBrush>
</Run.Foreground>
</Run>
</Span>
</Paragraph>
<Paragraph TextAlignment="Left" FontSize="18">
<Span Foreground="#FF31EF83">
<Run Text=" 本程序的前身Pixiv-Nginx-GUI,旨在为没有相关基础但需要使用该项目的人士提供一个更易于使用的方案。" FontWeight="Bold"/>
</Span>
<LineBreak/>
<Span Foreground="#FF3C75FF">
<Run Text=" 为了更好地适应程序的发展与版本的更迭,迁移到SNIBypassGUI继续开发,以提供更好的使用体验与更广的适用范围。" FontWeight="Bold"/>
</Span>
<LineBreak/>
<Span Foreground="#FFC74DE4">
<Run Text="项目地址:"/>
</Span>
<Run Cursor="Hand" PreviewMouseDown="LinkText_PreviewMouseDown" FontFamily="Microsoft Ya Hei UI" Foreground="#FF3C75FF" TextDecorations="Underline" Text="https://github.com/racpast/SNIBypassGUI"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
</hc:TransitioningContentControl>
<hc:TransitioningContentControl TransitionMode="Top2BottomWithFade" Grid.Column="1">
<TabControl x:Name="MainTabControl" Margin="10,10,20,20" Style="{StaticResource TabControlInLine}" FontFamily="{StaticResource AaManYuShouXieTi}" Background="Transparent" BorderBrush="White" FontSize="14">
<TabItem Header="主页" IsSelected="True" Background="#70FFFFFF">
<ScrollViewer>
<StackPanel Background="#70FFFFFF">
<TextBlock Margin="20,5,20,5" TextWrapping="Wrap" Text="欢迎使用 
SNIBypassGUI!" FontSize="24" Foreground="#FF2100C3" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold"/>
<TextBlock Margin="20,0,20,5" TextWrapping="Wrap" Text="如果您是第一次使用 SNIBypassGUI ,请单击下方按钮安装所需证书,所有对话框均选择 是(Y)。" FontSize="19" Foreground="#FF8738FF" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold"/>
<Button x:Name="InstallCertBtn" hc:IconElement.Geometry="{StaticResource CertificateGeometry}" Click="InstallCertBtn_Click" Height="30" Margin="10,0,10,0" HorizontalAlignment="Stretch" Content="安装或重装证书" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
<TextBlock x:Name="ServiceStatusText" Margin="20,5,20,0" TextWrapping="Wrap" Text="当前服务状态:
主服务与DNS服务未运行" FontSize="21" Foreground="Red" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold"/>
<Grid Margin="10,0,10,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" TextWrapping="Wrap" Text="选择正在使用的网络适配器:" FontSize="18" Foreground="#FF8738FF" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold"/>
<Button HorizontalAlignment="Right" x:Name="HelpBtn_HowToFindActiveAdapter" Click="HelpBtn_HowToFindActiveAdapter_Click" Grid.Column="1" BorderBrush="#FF212121" Background="#70FFFFFF" hc:BorderElement.CornerRadius="15" Content="如何选择?" hc:IconElement.Geometry="{StaticResource HelpGeometry}" FontWeight="Bold" FontSize="13"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<ComboBox x:Name="AdaptersCombo" Margin="10,0,10,10" SelectionChanged="AdaptersCombo_SelectionChanged" Foreground="#FF2100C3" BorderBrush="#FF2100C3" Background="#70FFFFFF" FontWeight="Bold" FontSize="16"/>
<Button x:Name="GetActiveAdapterBtn" hc:IconElement.Geometry="{StaticResource FindGeometry}" Grid.Column="1" Click="GetActiveAdapterBtn_Click" Height="30" Margin="0,0,10,10" HorizontalAlignment="Stretch" Content="自动获取" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center" Width="auto"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button x:Name="RefreshBtn" Height="30" hc:IconElement.Geometry="{StaticResource RefreshGeometry}" HorizontalAlignment="Stretch" Grid.Column="0" Click="RefreshBtn_Click" Margin="10,0,5,10" Content="刷新" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF00C7B9" BorderBrush="#FF00C7B9"/>
<Button x:Name="StartBtn" Height="30" hc:IconElement.Geometry="{StaticResource StartGeometry}" HorizontalAlignment="Stretch" Grid.Column="1" Click="StartBtn_Click" Margin="5,0,5,10" Content="启动" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF00ED66" BorderBrush="#FF00ED66"/>
<Button x:Name="StopBtn" Height="30" hc:IconElement.Geometry="{StaticResource StopGeometry}" HorizontalAlignment="Stretch" Grid.Column="2" Click="StopBtn_Click" Margin="5,0,10,10" Content="停止" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FFFF2424" BorderBrush="#FFFF2424"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button x:Name="SetStartBtn" hc:IconElement.Geometry="{StaticResource SettingGeometry}" Click="SetStartBtn_Click" Height="30" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="开机自动启动" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FFB724FF" BorderBrush="#FFB724FF" VerticalContentAlignment="Center"/>
<Button x:Name="StopStartBtn" hc:IconElement.Geometry="{StaticResource SettingGeometry}" Height="30" Grid.Column="1" Click="StopStartBtn_Click" Margin="5,0,10,10" HorizontalAlignment="Stretch" Content="停止自动启动" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FFB724FF" BorderBrush="#FFB724FF" VerticalContentAlignment="Center"/>
</Grid>
<Button x:Name="TaskbarIconRunBtn" hc:IconElement.Geometry="{StaticResource WindowsGeometry}" Click="TaskbarIconRunBtn_Click" Height="30" Margin="10,0,10,10" HorizontalAlignment="Stretch" Content="最小化到托盘图标运行" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
<Button x:Name="ExitBtn" hc:IconElement.Geometry="{StaticResource ExitGeometry}" Click="ExitBtn_Click" Height="30" Margin="10,0,10,10" HorizontalAlignment="Stretch" Content="退出工具" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FFFF2424" BorderBrush="#FFFF2424" VerticalContentAlignment="Center"/>
</StackPanel>
</ScrollViewer>
</TabItem>
<TabItem Header="开关列表" Background="#70FFFFFF">
<ScrollViewer>
<StackPanel Background="#70FFFFFF">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button x:Name="ApplyBtn" hc:IconElement.Geometry="{StaticResource ApplyGeometry}" IsEnabled="False" Click="ApplyBtn_Click" Height="30" Margin="10,10,5,10" HorizontalAlignment="Stretch" Content="应用更改" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF00ED66" BorderBrush="#FF00ED66" VerticalContentAlignment="Center"/>
<Button x:Name="UnchangeBtn" hc:IconElement.Geometry="{StaticResource DiscardGeometry}" IsEnabled="False" Grid.Column="1" Click="UnchangeBtn_Click" Height="30" Margin="5,10,10,10" HorizontalAlignment="Stretch" Content="取消更改" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FFFF2424" BorderBrush="#FFFF2424" VerticalContentAlignment="Center"/>
<Button x:Name="AllOnBtn" hc:IconElement.Geometry="{StaticResource AddGeometry}" Grid.Row="1" Click="AllOnBtn_Click" Height="30" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="全部开启" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF003AED" BorderBrush="#FF003AED" VerticalContentAlignment="Center"/>
<Button x:Name="AllOffBtn" hc:IconElement.Geometry="{StaticResource RemoveGeometry}" Grid.Row="1" Grid.Column="1" Click="AllOffBtn_Click" Height="30" Margin="5,0,10,10" HorizontalAlignment="Stretch" Content="全部关闭" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF003AED" BorderBrush="#FF003AED" VerticalContentAlignment="Center"/>
</Grid>
<Border Margin="10,0,10,10" BorderBrush="#FF00C7B9" BorderThickness="1,1,1,1" CornerRadius="5,5,5,5">
<Grid Background="#70969696" x:Name="Switchlist">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Border x:Name="FirstColumnBorder" Grid.Row="0" Grid.RowSpan="1" Grid.Column="0" BorderBrush="#FF00C7B9" BorderThickness="1" Background="#7FD3D3D3" CornerRadius="4,0,0,4"></Border>
<Border x:Name="LastColumnBorder" Grid.Row="0" Grid.RowSpan="1" Grid.Column="2" BorderBrush="#FF00C7B9" BorderThickness="1" Background="#7FD3D3D3" CornerRadius="0,4,4,0"></Border>
</Grid>
</Border>
<TextBlock Margin="10,0,10,5" TextWrapping="Wrap" Text="* 点击上面的链接可以直接打开哦,没发现吧,嘻嘻" FontSize="14" Foreground="#FF6B6B6B" FontStyle="Italic" FontFamily="Microsoft YaHei UI"/>
<TextBlock Margin="10,0,10,10" TextWrapping="Wrap" Text="目前支持的站点部分还有问题,正在火速适配,请见谅~QAQ" FontSize="22" Foreground="#FF7600DC" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold"/>
</StackPanel>
</ScrollViewer>
</TabItem>
<TabItem Header="设置" Background="#70FFFFFF">
<ScrollViewer>
<StackPanel Background="#70FFFFFF">
<Border Height="200" Margin="10,10,10,0" BorderBrush="DeepSkyBlue" BorderThickness="1,1,1,1" CornerRadius="5,5,5,5" Background="#70FFFFFF">
<StackPanel Height="200">
<Viewbox Margin="10,10,10,0" Width="100" Height="100">
<hc:AnimationPath Data="{DynamicResource GithubGeometry}" Duration="00:00:05" Stretch="Uniform" StrokeThickness="40" Stroke="Black" RepeatBehavior="Forever"/>
</Viewbox>
<TextBlock PreviewMouseDown="LinkText_PreviewMouseDown" Margin="10,5,10,0" TextWrapping="Wrap" Text="https://github.com/racpast/SNIBypassGUI" FontSize="15" Foreground="#FF04ABD6" TextDecorations="Underline" FontFamily="Microsoft Tai Le" HorizontalAlignment="Center" Cursor="Hand"/>
<TextBlock Margin="10,5,10,10" TextWrapping="Wrap" Text="如果您觉得这个项目有用,请去Github上面为我点一颗Star~" FontSize="20" Foreground="#FF04ABD6" FontFamily="{StaticResource AaManYuShouXieTi}" FontWeight="Bold" HorizontalAlignment="Center"/>
</StackPanel>
</Border>
<Button x:Name="CheckUpdateBtn" hc:IconElement.Geometry="{StaticResource CheckUpdateGeometry}" Click="CheckUpdateBtn_Click" Height="30" Margin="10,10,10,10" HorizontalAlignment="Stretch" Content="检查是否有新版本可用" Background="#70B560FF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
<Button x:Name="CleanBtn" hc:IconElement.Geometry="{StaticResource CleanGeometry}" Click="CleanBtn_Click" Height="30" Margin="10,0,10,10" HorizontalAlignment="Stretch" Content="清理服务运行日志及缓存 (0MB)" Background="#70B560FF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button x:Name="CustomBkgBtn" hc:IconElement.Geometry="{StaticResource CustomGeometry}" Click="CustomBkgBtn_Click" Height="30" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="自定义背景" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF21C500" BorderBrush="#FF21C500" VerticalContentAlignment="Center"/>
<Button x:Name="DefaultBkgBtn" hc:IconElement.Geometry="{StaticResource DefaultGeometry}" Grid.Column="1" Click="DefaultBkgBtn_Click" Height="30" Margin="5,0,10,10" HorizontalAlignment="Stretch" Content="恢复默认背景" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FFFF2424" BorderBrush="#FFFF2424" VerticalContentAlignment="Center"/>
</Grid>
<Button x:Name="PixivIPPreferenceBtn" hc:IconElement.Geometry="{StaticResource ExperimentGeometry}" Click="PixivIPPreferenceBtn_Click" Height="30" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="Pixiv IP优选:关" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button x:Name="DebugModeBtn" hc:IconElement.Geometry="{StaticResource DebugGeometry}" hc:IconElement.Height="25" hc:IconElement.Width="25" Click="DebugModeBtn_Click" Height="50" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="调试模式:
关" HorizontalContentAlignment="Center" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF04ABD6" BorderBrush="#FF04ABD6" VerticalContentAlignment="Center"/>
<Button x:Name="GUIDebugBtn" hc:IconElement.Geometry="{StaticResource DebugGeometry}" hc:IconElement.Height="25" hc:IconElement.Width="25" Grid.Column="1" IsEnabled="False" Click="GUIDebugBtn_Click" Height="50" Margin="5,0,10,10" HorizontalAlignment="Stretch" Content="GUI调试:
关" HorizontalContentAlignment="Center" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF04ABD6" BorderBrush="#FF04ABD6" VerticalContentAlignment="Center"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button x:Name="SwitchDomainNameResolutionMethodBtn" hc:IconElement.Geometry="{StaticResource DomainNameGeometry}" hc:IconElement.Height="25" hc:IconElement.Width="25" IsEnabled="False" Click="SwitchDomainNameResolutionMethodBtn_Click" Height="50" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="域名解析:
DNS服务" HorizontalContentAlignment="Center" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF04ABD6" BorderBrush="#FF04ABD6" VerticalContentAlignment="Center"/>
<Button x:Name="AcrylicDebugBtn" hc:IconElement.Geometry="{StaticResource DebugGeometry}" hc:IconElement.Height="25" hc:IconElement.Width="25" Grid.Column="1" IsEnabled="False" Click="AcrylicDebugBtn_Click" Height="50" Margin="5,0,10,10" HorizontalAlignment="Stretch" Content="DNS服务调试:
关" HorizontalContentAlignment="Center" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF04ABD6" BorderBrush="#FF04ABD6" VerticalContentAlignment="Center"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button x:Name="EditHostsBtn" hc:IconElement.Geometry="{StaticResource EditGeometry}" Click="EditHostsBtn_Click" Height="30" Margin="10,0,5,10" HorizontalAlignment="Stretch" Content="编辑系统hosts" HorizontalContentAlignment="Center" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
<Button x:Name="BackHostsBtn" hc:IconElement.Geometry="{StaticResource RestoreGeometry}" Grid.Column="1" Click="BackHostsBtn_Click" Height="30" Margin="5,0,10,10" HorizontalAlignment="Stretch" Content="还原系统hosts" HorizontalContentAlignment="Center" Background="#70FFFFFF" FontWeight="Bold" FontSize="17" FontFamily="{StaticResource AaManYuShouXieTi}" Foreground="#FF2100C3" BorderBrush="#FF2100C3" VerticalContentAlignment="Center"/>
</Grid>
</StackPanel>
</ScrollViewer>
</TabItem>
</TabControl>
</hc:TransitioningContentControl>
</Grid>
</Grid>
</Window>