-
Notifications
You must be signed in to change notification settings - Fork 0
/
Microsoft.Web.WebView2.Wpf.xml
1932 lines (1917 loc) Β· 141 KB
/
Microsoft.Web.WebView2.Wpf.xml
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
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Web.WebView2.Wpf</name>
</assembly>
<members>
<member name="T:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties">
<summary>
This class is a bundle of the most common parameters used to create <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Environment"/> and <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Controller"/> instances.
Its main purpose is to be set to <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CreationProperties"/> in order to customize the environment and/or controller used by a <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> during implicit initialization.
It is also a nice WPF integration utility which allows commonly used environment/controller parameters to be dependency properties and be created and used in markup.
</summary>
<remarks>
This class isn't intended to contain all possible environment or controller customization options.
If you need complete control over the environment and/or controller used by a WebView2 control then you'll need to initialize the control explicitly by
creating your own environment (with <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(System.String,System.String,Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions)"/>) and/or controller options (with <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateCoreWebView2ControllerOptions"/>) and passing them to <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/>
*before* you set the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.Source"/> property to anything.
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.#ctor">
<summary>
Creates a new instance of <see cref="T:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties"/> with default data for all properties.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.BrowserExecutableFolderProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.BrowserExecutableFolder"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.BrowserExecutableFolder">
<summary>
Gets or sets the value to pass as the browserExecutableFolder parameter of <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(System.String,System.String,Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions)"/> when creating an environment with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.UserDataFolderProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.UserDataFolder"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.UserDataFolder">
<summary>
Gets or sets the value to pass as the userDataFolder parameter of <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(System.String,System.String,Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions)"/> when creating an environment with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.LanguageProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.Language"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.Language">
<summary>
Gets or sets the value to use for the Language property of the CoreWebView2EnvironmentOptions parameter passed to <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(System.String,System.String,Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions)"/> when creating an environment with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.AdditionalBrowserArgumentsProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.AdditionalBrowserArguments"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.AdditionalBrowserArguments">
<summary>
Gets or sets the value to use for the AdditionalBrowserArguments property of the CoreWebView2EnvironmentOptions parameter passed to <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(System.String,System.String,Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions)"/> when creating an environment with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.AreBrowserExtensionsEnabledProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.AreBrowserExtensionsEnabled"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.AreBrowserExtensionsEnabled">
<summary>
Gets or sets the value to use for the AreBrowserExtensionsEnabled property of the CoreWebView2EnvironmentOptions parameter passed to <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(System.String,System.String,Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions)"/> when creating an environment with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.ProfileNameProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.ProfileName"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.ProfileName">
<summary>
Gets or sets the value to use for the ProfileName property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.IsInPrivateModeEnabledProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.IsInPrivateModeEnabled"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.IsInPrivateModeEnabled">
<summary>
Gets or sets the value to use for the IsInPrivateModeEnabled property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.ScriptLocaleProperty">
<summary>
The WPF DependencyProperty which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.ScriptLocale"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.ScriptLocale">
<summary>
Gets or sets the value to use for the ScriptLocale property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.CreateEnvironmentAsync">
<summary>
Create a <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Environment"/> using the current values of this instance's properties.
</summary>
<returns>A task which will provide the created environment on completion, or null if no environment-related options are set.</returns>
<remarks>
As long as no other properties on this instance are changed, repeated calls to this method will return the same task/environment as earlier calls.
If some other property is changed then the next call to this method will return a different task/environment.
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.CoreWebView2CreationProperties.CreateCoreWebView2ControllerOptions(Microsoft.Web.WebView2.Core.CoreWebView2Environment)">
<summary>
Create a <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions"/> using the current values of this instance's properties.
</summary>
<returns>A <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions"/> object or null if no controller-related properties are set.</returns>
<exception cref="T:System.NullReferenceException">Thrown if the parameter environment is null.</exception>
</member>
<member name="T:Microsoft.Web.WebView2.Wpf.Direct3DHelper">
<summary>
This class provides helper methods for working with Direct3D in the WebView2 WPF control.
It includes methods for creating Direct3D9 and Direct3D11 devices, creating textures,
copying resources, and getting shared handles, among others. These methods are used in
the GraphicsItemD3DImage class to interact with Direct3D objects and resources.
</summary>
<remarks>
The class includes PInvoke declarations for calling Direct3D functions from unmanaged code.
It also defines several COM interfaces and structures necessary for interacting with
Direct3D objects.
Note: This class is intended for internal use by the WebView2 WPF control and should not
be used directly by application developers.
</remarks>
</member>
<member name="T:Microsoft.Web.WebView2.Wpf.GraphicsItemD3DImage">
<summary>
This Class is a <see cref="T:System.Windows.Interop.D3DImage"/> capturing the content of the provided <see cref="T:Windows.UI.Composition.ContainerVisual"/> (the WebView2 visual).
</summary>
</member>
<member name="T:Microsoft.Web.WebView2.Wpf.ImplicitInitGate">
<summary>
Tracks the conditions which block implicit initialization and whether it has been requested or not.
The analogy is a set of gates which are either open (implicit init allowed) or closed (will have to wait).
All sub-gates must be open before implicit init can proceed.
If implicit init is requested while the gate is open then it happens immediately.
If it's requested while the gate is closed then it occurs when the gate becomes open.
</summary>
<remarks>
It should be reasonably straight-forward to expand this class in the future to:
* add new sub-gates to further restrict when implicit initialization can occur
* support storing and invoking multiple actions next time the gate is open instead of only one
</remarks>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.ISupportInitializeOpen">
<summary>
Tracks whether a sub-gate regarding <see cref="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.BeginInit"/>/<see cref="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.EndInit"/> is open or closed.
This sub-gate is only closed after calls to `BeginInit` and before an equal number of calls to `EndInit`.
</summary>
<remarks>
We don't want implicit initialization to occur in between those calls,
because implicit initialization is a side effect of setting the Source property,
and side effects of setting properties during that period are supposed to be delayed until `EndInit`.
</remarks>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.ISupportInitializeCount">
<summary>
How many times <see cref="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.BeginInit"/> has been called without <see cref="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.EndInit"/> being called.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.SyncContextOpen">
<summary>
Tracks whether a sub-gate regarding <see cref="P:System.Threading.SynchronizationContext.Current"/> is open or closed.
This sub-gate is closed if `SynchronizationContext.Current == null`.
</summary>
<remarks>
Initialization won't work without a `SynchronizationContext` because otherwise an `await` might resume on a different thread.
As far as I know so far this only occurs before an event loop as started on the running thread.
Once there's an event loop running the `SynchronizationContext` ensures that `await`s resume in the same event loop (i.e. same thread).
Although it's a rare corner case, it's possible to create a `Window` w/ `WebView2` before an app's event loop starts.
This sub-gate handles that corner case.
</remarks>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.PendingInitAction">
<summary>
An action which will trigger initialization next time the gate is open (and only once).
</summary>
<remarks>
This basically tracks whether or not implicit initialization has been requested while the gate is closed.
If this is non-null then it should be a delegate that calls <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/>.
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.BeginInit">
<summary>
Closes the gate until <see cref="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.EndInit"/> is called an equal number of times.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.EndInit">
<summary>
Opens the gate closed by <see cref="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.BeginInit"/> after being called the same number of times.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.OnSynchronizationContextExists(System.Object,System.Windows.RoutedEventArgs)">
<summary>
A handler that should be attached to an event which indicates that <see cref="P:System.Threading.SynchronizationContext.Current"/> exists.
The best one I know of right now is <see cref="E:System.Windows.FrameworkElement.Loaded"/>.
When the handler is called, the gate will re-evaluate its state and potentially allow any pending initialization action.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.RunWhenOpen(System.Action)">
<summary>
Run a given action when the gate is open.
</summary>
<remarks>
If the gate is currently open then the action runs immediately.
Otherwise the action runs next time the gate is discovered to be open.
The action is only ever run once; it will not run again a second/subsequent time the gate opens.
If the gate is closed and another action is already pending then the new action *overwrites* the current one (i.e. the currently stored action will never run).
To "forget" a currently stored action, pass `null`.
</remarks>
<param name="initAction">Action to run when the gate is open, or null to clear a previously specified action.</param>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.ImplicitInitGate.OnDataChanged">
<summary>
Examine our overall open/closed state and run any pending action if appropriate.
</summary>
</member>
<member name="T:Microsoft.Web.WebView2.Wpf.IWebView2">
<summary>
The public interfaces of WebView2 WPF control.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties">
<summary>
Gets or sets a bag of options which are used during initialization of the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/>.
Setting this property will not work after initialization of the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> has started (the old value will be retained).
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</summary>
<seealso cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2">
<summary>
Accesses the complete functionality of the underlying <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> COM API.
Returns <c>null</c> until initialization has completed.
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.SourceChanged">
<summary>
A wrapper around the <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.SourceChanged"/>.
The only difference between this event and <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.SourceChanged"/> is the first parameter that's passed to handlers.
Handlers of this event will receive the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> control, whereas handlers of <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.SourceChanged"/> will receive the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> instance.
</summary>
<see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.SourceChanged"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.NavigationStarting">
<summary>
A wrapper around the <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationStarting"/>.
The only difference between this event and <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationStarting"/> is the first parameter that's passed to handlers.
Handlers of this event will receive the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> control, whereas handlers of <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationStarting"/> will receive the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> instance.
</summary>
<seealso cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationStarting"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.NavigationCompleted">
<summary>
A wrapper around the <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationCompleted"/>.
The only difference between this event and <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationCompleted"/> is the first parameter that's passed to handlers.
Handlers of this event will receive the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> control, whereas handlers of <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationCompleted"/> will receive the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> instance.
</summary>
<seealso cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.NavigationCompleted"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.ZoomFactorChanged">
<summary>
The event is raised when the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.ZoomFactor"/> property changes.
This event directly exposes <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2Controller.ZoomFactorChanged"/>.
</summary>
<seealso cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.ZoomFactor"/>
<seealso cref="E:Microsoft.Web.WebView2.Core.CoreWebView2Controller.ZoomFactorChanged"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.ContentLoading">
<summary>
A wrapper around the <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.ContentLoading"/>.
The only difference between this event and <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.ContentLoading"/> is the first parameter that's passed to handlers.
Handlers of this event will receive the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> control, whereas handlers of <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.ContentLoading"/> will receive the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> instance.
</summary>
<seealso cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.ContentLoading"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.WebMessageReceived">
<summary>
A wrapper around the <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.WebMessageReceived"/>.
The only difference between this event and <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.WebMessageReceived"/> is the first parameter that's passed to handlers.
Handlers of this event will receive the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> control, whereas handlers of <see cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.WebMessageReceived"/> will receive the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> instance.
</summary>
<seealso cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.WebMessageReceived"/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2InitializationCompleted">
<summary>
This event is triggered either
1) when the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> has finished being initialized (regardless of how initialization was triggered) but before it is used for anything, or
2) if the initialization failed.
You should handle this event if you need to perform one time setup operations on the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> which you want to affect all of its usages.
(e.g. adding event handlers, configuring settings, installing document creation scripts, adding host objects).
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</summary>
<remarks>
This sender will be the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> control, whose <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> property will now be valid (i.e. non-null) for the first time
if <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs.IsSuccess"/> is <c>true</c>.
Unlikely this event can fire second time (after reporting initialization success first)
if the initialization is followed by navigation which fails.
</remarks>
<seealso cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)">
<summary>
Explicitly triggers initialization of the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/>.
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</summary>
<param name="environment">
A pre-created <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Environment"/> that should be used to create the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/>.
Creating your own environment gives you control over several options that affect how the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> is initialized.
If you pass an environment to this method then it will override any settings specified on the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> property.
If you pass <c>null</c> (the default value) and no value has been set to <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> then a default environment will be created and used automatically.
</param>
<param name="controllerOptions">
A pre-created <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions"/> that should be used to create the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/>.
Creating your own controller options gives you control over several options that affect how the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> is initialized.
If you pass a controllerOptions to this method then it will override any settings specified on the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> property.
If you pass <c>null</c> (the default value) and no value has been set to <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> then a default controllerOptions will be created and used automatically.
</param>
<returns>
A Task that represents the background initialization process.
When the task completes then the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> property will be available for use (i.e. non-null).
Note that the control's <see cref="E:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2InitializationCompleted"/> event will be invoked before the task completes.
</returns>
<remarks>
Unless previous initialization has already failed, calling this method additional times with the same parameter will have no effect (any specified environment is ignored) and return the same Task as the first call.
Unless previous initialization has already failed, calling this method after initialization has been implicitly triggered by setting the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.Source"/> property will have no effect if no environment is given
and simply return a Task representing that initialization already in progress, unless previous initialization has already failed.
Unless previous initialization has already failed, calling this method with a different environment after initialization has begun will result in an <see cref="T:System.ArgumentException"/>. For example, this can happen if you begin initialization
by setting the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.Source"/> property and then call this method with a new environment, if you begin initialization with <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> and then call this method with a new
environment, or if you begin initialization with one environment and then call this method with no environment specified.
When this method is called after previous initialization has failed, it will trigger initialization of the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> again.
Note that even though this method is asynchronous and returns a Task, it still must be called on the UI thread like most public functionality of most UI controls.
<para>
The following summarizes the possible error values and a description of why these errors occur.
<list type="table">
<listheader>
<description>Error Value</description>
<description>Description</description>
</listheader>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)</c></description>
<description>*\\Edge\\Application* path used in browserExecutableFolder.</description>
</item>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_INVALID_STATE)</c></description>
<description>Specified options do not match the options of the WebViews that are currently running in the shared browser process.</description>
</item>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_INVALID_WINDOW_HANDLE)</c></description>
<description>WebView2 Initialization failed due to an invalid host HWND parentWindow.</description>
</item>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_DISK_FULL)</c></description>
<description>WebView2 Initialization failed due to reaching the maximum number of installed runtime versions.</description>
</item>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_PRODUCT_UNINSTALLED</c></description>
<description>If the Webview depends upon an installed WebView2 Runtime version and it is uninstalled.</description>
</item>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)</c></description>
<description>Could not find Edge installation.</description>
</item>
<item>
<description><c>HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)</c></description>
<description>User data folder cannot be created because a file with the same name already exists.</description>
</item>
<item>
<description><c>E_ACCESSDENIED</c></description>
<description>Unable to create user data folder, Access Denied.</description>
</item>
<item>
<description><c>E_FAIL</c></description>
<description>Edge runtime unable to start.</description>
</item>
</list>
</para>
</remarks>
<exception cref="T:System.ArgumentException">
Thrown if this method is called with a different environment than when it was initialized. See Remarks for more info.
</exception>
<exception cref="T:System.InvalidOperationException">
Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if <see cref="P:System.Threading.SynchronizationContext.Current"/> is null, which probably indicates that the application's event loop hasn't started yet.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment)">
<summary>
Explicitly triggers initialization of the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/>.
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</summary>
<param name="environment">
A pre-created <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Environment"/> that should be used to create the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/>.
Creating your own environment gives you control over several options that affect how the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> is initialized.
If you pass an environment to this method then it will override any settings specified on the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> property.
If you pass <c>null</c> and no value has been set to <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> then a default environment will be created and used automatically.
</param>
<returns>
A Task that represents the background initialization process.
When the task completes then the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> property will be available for use (i.e. non-null).
Note that the control's <see cref="E:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2InitializationCompleted"/> event will be invoked before the task completes.
</returns>
<remarks>
Unless previous initialization has already failed, calling this method additional times with the same parameter will have no effect (any specified environment is ignored) and return the same Task as the first call.
Unless previous initialization has already failed, calling this method after initialization has been implicitly triggered by setting the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.Source"/> property will have no effect if no environment is given
and simply return a Task representing that initialization already in progress, unless previous initialization has already failed.
Unless previous initialization has already failed, calling this method with a different environment after initialization has begun will result in an <see cref="T:System.ArgumentException"/>. For example, this can happen if you begin initialization
by setting the <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.Source"/> property and then call this method with a new environment, if you begin initialization with <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> and then call this method with a new
environment, or if you begin initialization with one environment and then call this method with no environment specified.
When this method is called after previous initialization has failed, it will trigger initialization of the control's <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> again.
Note that even though this method is asynchronous and returns a Task, it still must be called on the UI thread like most public functionality of most UI controls.
</remarks>
<exception cref="T:System.ArgumentException">
Thrown if this method is called with a different environment than when it was initialized. See Remarks for more info.
</exception>
<exception cref="T:System.InvalidOperationException">
Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if <see cref="P:System.Threading.SynchronizationContext.Current"/> is null, which probably indicates that the application's event loop hasn't started yet.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.BeginInit">
<summary>
Implementation of the ISupportInitialize pattern.
Prevents the control from implicitly initializing its <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> until <see cref="M:Microsoft.Web.WebView2.Wpf.IWebView2.EndInit"/> is called.
Does *not* prevent explicit initialization of the CoreWebView2 (i.e. <see cref="M:Microsoft.Web.WebView2.Wpf.IWebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/>).
Mainly intended for use by interactive UI designers.
</summary>
<remarks>
Note that the "Initialize" in ISupportInitialize and the "Init" in BeginInit/EndInit mean
something different and more general than this control's specific concept of initializing
its CoreWebView2 (explicitly or implicitly). This ISupportInitialize pattern is a general
way to set batches of properties on the control to their initial values without triggering
any dependent side effects until all of the values are set (i.e. until EndInit is called).
In the case of this control, a specific side effect to be avoided is triggering implicit
initialization of the CoreWebView2 when setting the Source property.
For example, normally if you set <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CreationProperties"/> after you've already set Source,
the data set to CreationProperties is ignored because implicit initialization has already started.
However, if you set the two properties (in the same order) in between calls to BeginInit and
EndInit then the implicit initialization of the CoreWebView2 is delayed until EndInit, so the data
set to CreationProperties is still used even though it was set after Source.
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.EndInit">
<summary>
Implementation of the ISupportInitialize pattern.
Invokes any functionality that has been delayed since the corresponding call to <see cref="M:Microsoft.Web.WebView2.Wpf.IWebView2.BeginInit"/>.
Mainly intended for use by interactive UI designers.
</summary>
<remarks>
See the documentation of <see cref="M:Microsoft.Web.WebView2.Wpf.IWebView2.BeginInit"/> for more information.
</remarks>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.Source">
<summary>
The top-level <see cref="T:System.Uri"/> which the WebView is currently displaying (or will display once initialization of its <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> is finished).
Generally speaking, getting this property is equivalent to getting the <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2.Source"/> property and setting this property (to a different value) is equivalent to calling the <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.Navigate(System.String)"/> method.
</summary>
<remarks>
Getting this property before the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> has been initialized will retrieve the last Uri which was set to it, or null (the default) if none has been.
Setting this property before the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> has been initialized will cause initialization to start in the background (if not already in progress), after which the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> will navigate to the specified <see cref="T:System.Uri"/>.
This property can never be set back to null or to a relative <see cref="T:System.Uri"/>.
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</remarks>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<exception cref="T:System.NotImplementedException">Thrown if the property is set to <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">Thrown if the property is set to a relative <see cref="T:System.Uri"/> (i.e. a <see cref="T:System.Uri"/> whose <see cref="P:System.Uri.IsAbsoluteUri"/> property is <c>false</c>).</exception>
<seealso cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.CanGoBack">
<summary>
Returns <c>true</c> if the WebView can navigate to a previous page in the navigation history.
Wrapper around the <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2.CanGoBack"/> property of <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/>.
If <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> isn't initialized yet then returns <c>false</c>.
</summary>
<seealso cref="P:Microsoft.Web.WebView2.Core.CoreWebView2.CanGoBack"/>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.CanGoForward">
<summary>
Returns <c>true</c> if the WebView can navigate to a next page in the navigation history.
Wrapper around the <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2.CanGoForward"/> property of <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/>.
If <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> isn't initialized yet then returns <c>false</c>.
</summary>
<seealso cref="P:Microsoft.Web.WebView2.Core.CoreWebView2.CanGoForward"/>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.ZoomFactor">
<summary>
The zoom factor for the WebView.
This property directly exposes <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2Controller.ZoomFactor"/>, see its documentation for more info.
Getting this property before the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> has been initialized will retrieve the last value which was set to it, or <c>1.0</c> (the default) if none has been.
The most recent value set to this property before the CoreWebView2 has been initialized will be set on it after initialization.
</summary>
<seealso cref="P:Microsoft.Web.WebView2.Core.CoreWebView2Controller.ZoomFactor"/>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.DefaultBackgroundColor">
<summary>
The default background color for the WebView.
This property directly exposes <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2Controller.DefaultBackgroundColor"/>, see its documentation for more info.
Getting this property before the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Controller"/> has been initialized will retrieve the last value which was
set to it, or <c>Color.White</c> (the default) if none has been.
The most recent value set to this property before CoreWebView2Controller has been initialized will be set on it after initialization.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.DesignModeForegroundColor">
<summary>
The foreground color to be used in design mode.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.IWebView2.AllowExternalDrop">
<summary>
The AllowExternalDrop property for the WebView.
This property directly exposes <see cref="P:Microsoft.Web.WebView2.Core.CoreWebView2Controller.AllowExternalDrop"/>, see its documentation for more info.
Getting this property before the <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Controller"/> has been initialized will retrieve the last value which was
set to it, or <c>true</c> (the default) if none has been.
The most recent value set to this property before CoreWebView2Controller has been initialized will be set on it after initialization.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.GoBack">
<summary>
Navigates the WebView to the previous page in the navigation history.
Equivalent to calling <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.GoBack"/>
If <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> hasn't been initialized yet then does nothing.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="P:Microsoft.Web.WebView2.Core.CoreWebView2.CanGoBack"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.GoForward">
<summary>
Navigates the WebView to the next page in the navigation history.
Equivalent to calling <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.GoForward"/>.
If <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2"/> hasn't been initialized yet then does nothing.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.GoForward"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.Reload">
<summary>
Reloads the current page.
Equivalent to calling <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.Reload"/>.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.Reload"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.Stop">
<summary>
Stops all navigations and pending resource fetches.
Equivalent to calling <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.Stop"/>.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.Stop"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.NavigateToString(System.String)">
<summary>
Initiates a navigation to htmlContent as source HTML of a new document.
Equivalent to calling <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.NavigateToString(System.String)"/>.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<remarks>The <c>htmlContent</c> parameter may not be larger than 2 MB (2 * 1024 * 1024 bytes) in total size. The origin of the new page is <c>about:blank</c>.</remarks>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.NavigateToString(System.String)"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.ExecuteScriptAsync(System.String)">
<summary>
Executes JavaScript code from the javaScript parameter in the current top level document rendered in the WebView.
Equivalent to calling <see cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.ExecuteScriptAsync(System.String)"/>.
</summary>
<exception cref="T:System.InvalidOperationException">
Thrown if <see cref="P:Microsoft.Web.WebView2.Wpf.IWebView2.CoreWebView2"/> hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See <see cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/> for more info.
May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if <see cref="M:System.IDisposable.Dispose"/> has already been called on the control.</exception>
<seealso cref="M:System.Windows.Threading.DispatcherObject.VerifyAccess"/>
<seealso cref="M:Microsoft.Web.WebView2.Core.CoreWebView2.ExecuteScriptAsync(System.String)"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2.Focus">
<summary>
Attempts to set focus to the WebView2 Control.
Equivalent to calling <see cref="M:System.Windows.UIElement.Focus"/>.
Returns <c>true</c> if keyboard focus and logical focus were set to this element;
<c>false</c> if only logical focus was set to this element, or if the call to this method did not force the focus to change.
</summary>
</member>
<member name="T:Microsoft.Web.WebView2.Wpf.IWebView2Private">
<summary>
Defines internal operations specific to the WebView2 WPF control, separating the control-specific logic
that cannot be shared across different types of controls.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2Private.InitializeController(System.IntPtr,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)">
<summary>
Initializes the WebView2 controller with operations specific to the control type.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.IWebView2Private.UninitializeController">
<summary>
Unregister controller's handlers specific to the control type.
</summary>
</member>
<member name="T:Microsoft.Web.WebView2.Wpf.WebView2">
<summary>
A control to embed web content in a WPF application.
</summary>
<remarks>
This control is effectively a wrapper around the [WebView2 COM API](https://aka.ms/webview2).
You can directly access the underlying
ICoreWebView2 interface and all of its functionality by accessing the
<see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> property. Some of the most common COM
functionality is also accessible directly through wrapper
methods/properties/events on the control.
Upon creation, the control's <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> property will be
<c>null</c>. This is because creating the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> is an
expensive operation which involves things like launching Edge browser
processes. There are two ways to cause the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> to
be created:
<list type="bullet">
<item><description>
Call the <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/> method. This is
referred to as explicit initialization.
</description></item>
<item><description>
Set the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.Source"/> property (which could be done from
markup, for example). This is referred to as implicit initialization.
Either option will start initialization in the background and return
back to the caller without waiting for it to finish.
To specify options regarding the initialization process, either pass
your own <see cref="T:Microsoft.Web.WebView2.Core.CoreWebView2Environment"/> to <see
cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/> or set the control's <see
cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CreationProperties"/> property prior to initialization.
</description></item>
</list>
When initialization has finished (regardless of how it was triggered or
whether it succeeded) then the following things will occur, in this
order:
<list type="number">
<item><description>
The control's <see cref="E:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2InitializationCompleted"/> event
will be invoked. If you need to perform one time setup operations on
the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> prior to its use then you should
do so in a handler for that event.
</description></item>
<item><description>
If initialization was successful and a Uri has been set to the <see
cref="P:Microsoft.Web.WebView2.Wpf.WebView2.Source"/> property then the control will start navigating to it in
the background (i.e. these steps will continue without waiting for the
navigation to finish).
</description></item>
<item><description>
The Task returned from <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/> will
complete.
</description></item>
</list>
For more details about any of the methods/properties/events involved in
the initialization process, see its specific documentation.
Because the control's <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> is a very heavyweight
object (potentially responsible for multiple running processes and
megabytes of disk space) the control implements <see
cref="T:System.IDisposable"/> to provide an explicit means to free it.
Calling <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.Dispose(System.Boolean)"/> will release the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/>
and its underlying resources (except any that are also being used by other
WebViews), and reset <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> to <c>null</c>. After <see
cref="M:Microsoft.Web.WebView2.Wpf.WebView2.Dispose(System.Boolean)"/> has been called the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> cannot be
re-initialized, and any attempt to use functionality which requires it
will throw an <see cref="T:System.ObjectDisposedException"/>.
Accelerator key presses (e.g. Ctrl+P) that occur within the control will
fire standard key press events such as OnKeyDown. You can suppress the
control's default implementation of an accelerator key press (e.g.
printing, in the case of Ctrl+P) by setting the Handled property of its
EventArgs to true. Also note that the underlying browser process is
blocked while these handlers execute, so:
<list type="number">
<item>
<description>You should avoid doing a lot of work in these handlers.</description>
</item>
<item><description>
Some of the WebView2 and CoreWebView2 APIs may throw errors if
invoked within these handlers due to being unable to communicate with
the browser process.
</description></item>
</list>
If you need to do a lot of work and/or invoke WebView2 APIs in response to
accelerator keys then consider kicking off a background task or queuing
the work for later execution on the UI thread.
Note that this control extends <see cref="T:System.Windows.Interop.HwndHost"/> in order to embed
windows which live outside of the WPF ecosystem. This has some
implications regarding the control's input and output behavior as well as
the functionality it "inherits" from <see cref="T:System.Windows.UIElement"/> and <see
cref="T:System.Windows.FrameworkElement"/>.
See the <see cref="T:System.Windows.Interop.HwndHost"/> and [WPF/Win32 interop](/dotnet/framework/wpf/advanced/wpf-and-win32-interoperation#hwnds-inside-wpf)
documentation for more information.
</remarks>
<seealso cref="T:System.Windows.Interop.HwndHost"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.#ctor">
<summary>
Creates a new instance of a WebView2 control.
Note that the control's <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> will be null until initialized.
See the <see cref="T:Microsoft.Web.WebView2.Wpf.WebView2"/> class documentation for an initialization overview.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.CreationPropertiesProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CreationProperties"/> property.
</summary>
<seealso cref="T:System.Windows.DependencyProperty"/>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.CreationProperties">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.BuildWindowCore(System.Runtime.InteropServices.HandleRef)">
<summary>
This is overridden from <see cref="T:System.Windows.Interop.HwndHost"/> and is called to instruct us to create our HWND.
</summary>
<param name="hwndParent">The HWND that we should use as the parent of the one we create.</param>
<returns>The HWND that we created.</returns>
<seealso cref="M:System.Windows.Interop.HwndHost.BuildWindowCore(System.Runtime.InteropServices.HandleRef)"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.DestroyWindowCore(System.Runtime.InteropServices.HandleRef)">
<summary>
This is overridden from <see cref="T:System.Windows.Interop.HwndHost"/> and is called to instruct us to destroy our HWND.
</summary>
<param name="hwnd">Our HWND that we need to destroy.</param>
<seealso cref="M:System.Windows.Interop.HwndHost.DestroyWindowCore(System.Runtime.InteropServices.HandleRef)"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.WndProc(System.IntPtr,System.Int32,System.IntPtr,System.IntPtr,System.Boolean@)">
<summary>
This is overridden from <see cref="T:System.Windows.Interop.HwndHost"/> and is called to provide us with Win32 messages that are sent to our hwnd.
</summary>
<param name="hwnd">Window receiving the message (should always match our <see cref="P:System.Windows.Interop.HwndHost.Handle"/>).</param>
<param name="msg">Indicates the message being received. See Win32 documentation for WM_* constant values.</param>
<param name="wParam">The "wParam" data being provided with the message. Meaning varies by message.</param>
<param name="lParam">The "lParam" data being provided with the message. Meaning varies by message.</param>
<param name="handled">If true then the message will not be forwarded to any (more) <see cref="E:System.Windows.Interop.HwndHost.MessageHook"/> handlers.</param>
<returns>Return value varies by message.</returns>
<seealso cref="M:System.Windows.Interop.HwndHost.WndProc(System.IntPtr,System.Int32,System.IntPtr,System.IntPtr,System.Boolean@)"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnGotFocus(System.Windows.RoutedEventArgs)">
<summary>
We override the <see cref="M:System.Windows.UIElement.OnGotFocus(System.Windows.RoutedEventArgs)"/> to prevent the focus event from propagating.
We expect the event raised from <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2Base.CoreWebView2Controller_GotFocus(System.Object,System.Object)"/>
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnLostFocus(System.Windows.RoutedEventArgs)">
<summary>
We override the <see cref="M:System.Windows.UIElement.OnLostFocus(System.Windows.RoutedEventArgs)"/> to prevent the focus event from propagating.
We expect the event raised from <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2Base.CoreWebView2Controller_LostFocus(System.Object,System.Object)"/>
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnRender(System.Windows.Media.DrawingContext)">
<summary>
Override for painting to draw
</summary>
<param name="dc">The tools to handle the drawing via <see cref="T:System.Windows.Media.DrawingContext"/>.</param>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2">
<inheritdoc/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2InitializationCompleted">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.Microsoft#Web#WebView2#Wpf#IWebView2Private#InitializeController(System.IntPtr,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.Microsoft#Web#WebView2#Wpf#IWebView2Private#UninitializeController">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment)">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.Dispose(System.Boolean)">
<summary>
This is called by our base class according to the typical implementation of the <see cref="T:System.IDisposable"/> pattern.
We implement it by releasing all of our underlying COM resources, including our <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/>.
</summary>
<param name="disposing">True if a caller is explicitly calling Dispose, false if we're being finalized.</param>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.BeginInit">
<summary>
Implementation of the ISupportInitialize pattern.
Prevents the control from implicitly initializing its <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2"/> until <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EndInit"/> is called.
Does *not* prevent explicit initialization of the CoreWebView2 (i.e. <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.EnsureCoreWebView2Async(Microsoft.Web.WebView2.Core.CoreWebView2Environment,Microsoft.Web.WebView2.Core.CoreWebView2ControllerOptions)"/>).
Mainly intended for use by interactive UI designers.
</summary>
<remarks>
Note that the "Initialize" in ISupportInitialize and the "Init" in BeginInit/EndInit mean
something different and more general than this control's specific concept of initializing
its CoreWebView2 (explicitly or implicitly). This ISupportInitialize pattern is a general
way to set batches of properties on the control to their initial values without triggering
any dependent side effects until all of the values are set (i.e. until EndInit is called).
In the case of this control, a specific side effect to be avoided is triggering implicit
initialization of the CoreWebView2 when setting the Source property.
For example, normally if you set <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CreationProperties"/> after you've already set Source,
the data set to CreationProperties is ignored because implicit initialization has already started.
However, if you set the two properties (in the same order) in between calls to BeginInit and
EndInit then the implicit initialization of the CoreWebView2 is delayed until EndInit, so the data
set to CreationProperties is still used even though it was set after Source.
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.EndInit">
<summary>
Implementation of the ISupportInitialize pattern.
Invokes any functionality that has been delayed since the corresponding call to <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.BeginInit"/>.
Mainly intended for use by interactive UI designers.
</summary>
<remarks>
See the documentation of <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.BeginInit"/> for more information.
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.ReparentController(System.IntPtr,System.Boolean)">
<summary>
Changes our controller's ParentWindow to the given HWND, along with any other necessary associated work.
</summary>
<param name="hwnd">The new HWND to set as the controller's parent. IntPtr.Zero means that the controller will have no parent and the CoreWebView2 will be hidden.</param>
<param name="sync">Whether or not to call <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.SyncControllerWithParentWindow"/> as required. Defaults to true. If you pass false then you should call it yourself if required.</param>
<remarks>
Reparenting the controller isn't necessarily as simple as changing its ParentWindow property,
and this method exists to ensure that any other work that needs to be done at the same time gets done.
The reason that SyncControllerWithParentWindow isn't baked directly into this method is because
sometimes we want to call the Sync functionality without necessarily reparenting (e.g. during initialization).
</remarks>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.SyncControllerWithParentWindow">
<summary>
Syncs visual/windowing information between the controller and its parent HWND.
This should be called any time a new, non-null HWND is set as the controller's parent,
including when the controller is first created.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnWindowPositionChanged(System.Windows.Rect)">
<summary>
This is overridden from <see cref="T:System.Windows.Interop.HwndHost"/> and called when our control's location has changed.
The HwndHost takes care of updating the HWND we created.
What we need to do is move our CoreWebView2 to match the new location.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.SourceProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.Source"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.Source">
<inheritdoc/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.WebView2.SourceChanged">
<inheritdoc/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.WebView2.NavigationStarting">
<inheritdoc/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.WebView2.NavigationCompleted">
<inheritdoc/>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.CanGoBackProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CanGoBack"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.CanGoBack">
<inheritdoc/>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.CanGoForwardProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.CanGoForward"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.CanGoForward">
<inheritdoc/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.TabIntoCore(System.Windows.Input.TraversalRequest)">
<summary>
This is overridden from <see cref="T:System.Windows.Interop.HwndHost"/> and is called to inform us that tabbing has caused the focus to move into our control/window.
Since WPF can't manage the transition of focus to a non-WPF HWND, it delegates the transition to us here.
So our job is just to place the focus in our external HWND.
</summary>
<param name="request">Information about how the focus is moving.</param>
<returns><c>true</c> to indicate that we handled the navigation, or <c>false</c> to indicate that we didn't.</returns>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnKeyDown(System.Windows.Input.KeyEventArgs)">
<summary>
This is overridden from <see cref="T:System.Windows.UIElement"/> and called to allow us to handle key press input.
WPF should never actually call this in response to keyboard events because we're hosting a non-WPF window.
When our window has focus Windows will send the input directly to it rather than to WPF's top-level window and input system.
This override should only be called when we're explicitly forwarding accelerator key input from the CoreWebView2 to WPF (in CoreWebView2Controller_AcceleratorKeyPressed).
Even then, this KeyDownEvent is only triggered because our PreviewKeyDownEvent implementation explicitly triggers it, matching WPF's usual system.
So the process is:
<list type="number">
<item><description>CoreWebView2Controller_AcceleratorKeyPressed</description></item>
<item><description>PreviewKeyDownEvent</description></item>
<item><description>KeyDownEvent</description></item>
<item><description>OnKeyDown</description></item>
</list>
.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnKeyUp(System.Windows.Input.KeyEventArgs)">
<summary>
See <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.OnKeyDown(System.Windows.Input.KeyEventArgs)"/>.
</summary>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnPreviewKeyDown(System.Windows.Input.KeyEventArgs)">
<summary>
This is the "Preview" (i.e. tunneling) version of <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.OnKeyDown(System.Windows.Input.KeyEventArgs)"/>, so it actually happens first.
Like OnKeyDown, this will only ever be called if we're explicitly forwarding key presses from the CoreWebView2.
In order to mimic WPF's standard input handling, when we receive this we turn around and fire off the standard bubbling KeyDownEvent.
That way others in the WPF tree see the same standard pair of input events that WPF itself would have triggered if it were handling the key press.
</summary>
<seealso cref="M:Microsoft.Web.WebView2.Wpf.WebView2.OnKeyDown(System.Windows.Input.KeyEventArgs)"/>
</member>
<member name="M:Microsoft.Web.WebView2.Wpf.WebView2.OnPreviewKeyUp(System.Windows.Input.KeyEventArgs)">
<summary>
See <see cref="M:Microsoft.Web.WebView2.Wpf.WebView2.OnPreviewKeyDown(System.Windows.Input.KeyEventArgs)"/>.
</summary>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.ZoomFactorProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.ZoomFactor"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.ZoomFactor">
<inheritdoc/>
</member>
<member name="E:Microsoft.Web.WebView2.Wpf.WebView2.ZoomFactorChanged">
<inheritdoc/>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.DefaultBackgroundColorProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="P:Microsoft.Web.WebView2.Wpf.WebView2.DefaultBackgroundColor"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.DefaultBackgroundColor">
<inheritdoc/>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.AllowExternalDropProperty">
<summary>
The WPF <see cref="T:System.Windows.DependencyProperty"/> which backs the <see cref="F:Microsoft.Web.WebView2.Wpf.WebView2.AllowExternalDropProperty"/> property.
</summary>
</member>
<member name="P:Microsoft.Web.WebView2.Wpf.WebView2.AllowExternalDrop">
<inheritdoc/>
</member>
<member name="F:Microsoft.Web.WebView2.Wpf.WebView2.DesignModeForegroundColorProperty">