WebView Execution Mode on Windows
This platform-specific sets the thread on which a WebView
hosts its content. It's consumed in XAML by setting the WebView.ExecutionMode
bindable property to a WebViewExecutionMode
enumeration value:
<ContentPage ...
xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
<StackLayout>
<WebView ... windows:WebView.ExecutionMode="SeparateThread" />
...
</StackLayout>
</ContentPage>
Alternatively, it can be consumed from C# using the fluent API:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...
WebView webView = new Xamarin.Forms.WebView();
webView.On<Windows>().SetExecutionMode(WebViewExecutionMode.SeparateThread);
The WebView.On<Windows>
method specifies that this platform-specific will only run on the Universal Windows Platform. The WebView.SetExecutionMode
method, in the Xamarin.Forms.PlatformConfiguration.WindowsSpecific
namespace, is used to set the thread on which a WebView
hosts its content, with the WebViewExecutionMode
enumeration providing three possible values:
SameThread
indicates that content is hosted on the UI thread. This is the default value for theWebView
on Windows.SeparateThread
indicates that content is hosted on a background thread.SeparateProcess
indicates that content is hosted on a separate process off the app process. There isn't a separate process per WebView instance, and so all of an app's WebView instances share the same separate process.
In addition, the GetExecutionMode
method can be used to return the current WebViewExecutionMode
for the WebView
.