WebView-Ausführungsmodus unter Windows

Beispiel herunterladen Das Beispiel herunterladen

Dieser plattformspezifische Thread legt den Thread fest, in dem ein WebView Inhalt hostet. Es wird in XAML verwendet, indem die WebView.ExecutionMode bindbare Eigenschaft auf einen WebViewExecutionMode Enumerationswert festgelegt wird:

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        <WebView ... windows:WebView.ExecutionMode="SeparateThread" />
        ...
    </StackLayout>
</ContentPage>

Alternativ kann sie über C# mit der Fluent-API genutzt werden:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

WebView webView = new Xamarin.Forms.WebView();
webView.On<Windows>().SetExecutionMode(WebViewExecutionMode.SeparateThread);

Die WebView.On<Windows> -Methode gibt an, dass diese plattformspezifische Nur auf dem Universelle Windows-Plattform ausgeführt wird. Die WebView.SetExecutionMode -Methode im Xamarin.Forms.PlatformConfiguration.WindowsSpecific -Namespace wird verwendet, um den Thread festzulegen, für den ein WebView Inhalt gehostet wird, wobei die WebViewExecutionMode Enumeration drei mögliche Werte bereitstellt:

  • SameThread gibt an, dass Inhalte im UI-Thread gehostet werden. Dies ist der Standardwert für windows WebView .
  • SeparateThread gibt an, dass Inhalte in einem Hintergrundthread gehostet werden.
  • SeparateProcess gibt an, dass Inhalte in einem separaten Prozess außerhalb des App-Prozesses gehostet werden. Es gibt keinen separaten Prozess pro WebView-instance, sodass alle WebView-Instanzen einer App denselben separaten Prozess verwenden.

Darüber hinaus kann die GetExecutionMode -Methode verwendet werden, um den aktuellen WebViewExecutionMode für WebViewzurückzugeben.