Condividi tramite


WebViewBrush Classe

Definizione

Fornisce un pennello che esegue il rendering del contenuto attualmente ospitato in un controllo WebView .

public ref class WebViewBrush sealed : TileBrush
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class WebViewBrush final : TileBrush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class WebViewBrush final : TileBrush
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class WebViewBrush : TileBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class WebViewBrush : TileBrush
Public NotInheritable Class WebViewBrush
Inherits TileBrush
<WebViewBrush .../>
Ereditarietà
Object Platform::Object IInspectable DependencyObject Brush TileBrush WebViewBrush
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

L'esempio di codice specifico di Windows 8 seguente illustra come usare un WebViewBrush per abilitare il contenuto basato su XAML per sovrapporsi al contenuto basato su HTML. In questo esempio il controllo WebView viene visualizzato per impostazione predefinita in modo che rimanga interattivo. Quando l'elenco a discesa ComboBox è aperto, tuttavia, si sovrappone al controllo WebView . In questo caso, WebView è nascosto e WebViewBrush visualizza il contenuto HTML in un rettangolo che occupa lo stesso spazio.

<Grid x:Name="Output" Grid.Row="1">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <ComboBox x:Name="ComboBox1" Height="50" Width="200" HorizontalAlignment="Left" Margin="10,0,0,0">
        <ComboBoxItem>
            <x:String>First Item</x:String>
        </ComboBoxItem>
        <ComboBoxItem>
            <x:String>Second Item</x:String>
        </ComboBoxItem>
        <ComboBoxItem>
            <x:String>Third Item</x:String>
        </ComboBoxItem>
        <ComboBoxItem>
            <x:String>Fourth Item</x:String>
        </ComboBoxItem>
        <ComboBoxItem>
            <x:String>Fifth Item</x:String>
        </ComboBoxItem>
        <ComboBoxItem>
            <x:String>Sixth Item</x:String>
        </ComboBoxItem>
        <ComboBoxItem>
            <x:String>Seventh Item</x:String>
        </ComboBoxItem>
    </ComboBox>
    <Border BorderThickness="1" BorderBrush="#FF707070"  Grid.Row="1" Margin="10,0,0,0">
        <Grid>
            <WebView x:Name="WebView6" />
            <Rectangle x:Name="Rect1"/>
        </Grid>
    </Border>
</Grid>
void SDKSample::WebViewControl::Scenario6::ComboBox1_DropDownOpened(
    Platform::Object^ sender, Platform::Object^ e)
{
    if (Rect1->Visibility == Windows::UI::Xaml::Visibility::Visible)
    {
        WebViewBrush^ b = ref new WebViewBrush();
        b->SourceName = "WebView6";
        b->Redraw();
        Rect1->Fill = b;
        WebView6->Visibility = Windows::UI::Xaml::Visibility::Collapsed;    
    }
}

void SDKSample::WebViewControl::Scenario6::ComboBox1_DropDownClosed(
    Platform::Object^ sender, Platform::Object^ e)
{
    WebView6->Visibility = Windows::UI::Xaml::Visibility::Visible;
    Rect1->Fill = ref new SolidColorBrush(Windows::UI::Colors::Transparent);
}
void ComboBox1_DropDownOpened(object sender, object e)
{
    if (Rect1.Visibility == Windows.UI.Xaml.Visibility.Visible)
    {
        WebViewBrush b = new WebViewBrush();
        b.SourceName = "WebView6";
        b.Redraw();
        Rect1.Fill = b;
        WebView6.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }
}

void ComboBox1_DropDownClosed(object sender, object e)
{
    WebView6.Visibility = Windows.UI.Xaml.Visibility.Visible;
    Rect1.Fill = new SolidColorBrush(Windows.UI.Colors.Transparent);
}
Private Sub ComboBox1_DropDownOpened(sender As Object, e As Object)
    If Rect1.Visibility = Windows.UI.Xaml.Visibility.Visible Then
        Dim b As New WebViewBrush()
        b.SourceName = "WebView6"
        b.Redraw()
        Rect1.Fill = b
        WebView6.Visibility = Windows.UI.Xaml.Visibility.Collapsed
    End If
End Sub

Private Sub ComboBox1_DropDownClosed(sender As Object, e As Object)
    WebView6.Visibility = Windows.UI.Xaml.Visibility.Visible
    Rect1.Fill = New SolidColorBrush(Windows.UI.Colors.Transparent)
End Sub

Commenti

In Windows 8 il controllo WebView ha la caratteristica che altre aree dell'interfaccia utente, ad esempio i controlli, non possono essere visualizzati sopra. Ciò è dovuto al modo in cui le aree della finestra vengono gestite internamente, in particolare il modo in cui gli eventi di input vengono elaborati e il modo in cui lo schermo disegna. Se si vuole eseguire il rendering del contenuto HTML e inserire anche altri elementi dell'interfaccia utente sopra il contenuto HTML, è consigliabile usare WebViewBrush come area di rendering. WebView fornisce comunque le informazioni sull'origine HTML e si fa riferimento a WebView tramite la proprietà SourceName (o chiamando SetSource, il metodo e la proprietà producono gli stessi risultati). WebViewBrush non ha questa limitazione di sovrapposizione, ma non abilita l'interazione.

Nota

Le osservazioni precedenti si applicano solo alle app compilate per Windows 8, anche quando in esecuzione in Windows 8.1. Windows 8.1 introduce modifiche al controllo WebView che risolve i problemi descritti qui. Per Windows 8.1, si prevede che gli scenari in cui si userà ancora un WebViewBrush non sarà molto comune. Nella maggior parte dei casi è sufficiente usare un controllo WebView e ottenere la funzionalità necessaria.

È possibile applicare un webViewBrush a qualsiasi proprietà che accetta un pennello. Ad esempio, è possibile impostare Shape.Fill o Control.Background con un webViewBrush.

Esistono due alternative per associare un webViewBrush a un'origine del controllo WebView :

  • Fare riferimento all'origine WebView in base al nome dell'identificatore impostando la proprietà SourceName .
  • Fare riferimento a WebView di origine chiamando il metodo SetSource e passando un oggetto WebView .

Importante

Spesso è necessario chiamare Redraw per un WebViewBrush dichiarato in XAML nella stessa interfaccia utente dell'origine WebView . Un controllo WebView ha un comportamento intrinsecamente asincrono che ridisegna il controllo quando il relativo contenuto viene completamente caricato. Ma viene eseguito il rendering di WebViewBrush associato non appena viene analizzato il codice XAML, che potrebbe essere prima che il contenuto dell'URI venga caricato da WebView. In alternativa, è possibile attendere di chiamare SetSource nel WebViewBrush fino al caricamento completo del contenuto di origine, ad esempio chiamando SetSource nel gestore per l'evento WebView.LoadCompleted .

Questa classe non è supportata in Windows Phone 8.x. Il contenuto di WebView non verrà acquisito.

Costruttori

WebViewBrush()

Inizializza una nuova istanza della classe WebViewBrush .

Proprietà

AlignmentX

Ottiene o imposta l'allineamento orizzontale del contenuto nel riquadro di base TileBrush .

(Ereditato da TileBrush)
AlignmentY

Ottiene o imposta l'allineamento verticale del contenuto nel riquadro della base TileBrush .

(Ereditato da TileBrush)
Dispatcher

Ottiene CoreDispatcher associato a questo oggetto. CoreDispatcher rappresenta una struttura che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non interfaccia utente.

(Ereditato da DependencyObject)
Opacity

Ottiene o imposta il grado di opacità di un pennello.

(Ereditato da Brush)
RelativeTransform

Ottiene o imposta la trasformazione applicata al pennello usando coordinate relative.

(Ereditato da Brush)
SourceName

Ottiene o imposta il nome del controllo WebView di origine che fornisce il contenuto HTML.

SourceNameProperty

Identifica la proprietà di dipendenza SourceName .

Stretch

Ottiene o imposta un valore che specifica il modo in cui il contenuto di questo TileBrush si estende per adattare i riquadri.

(Ereditato da TileBrush)
Transform

Ottiene o imposta la trasformazione applicata al pennello.

(Ereditato da Brush)

Metodi

ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject.

(Ereditato da DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Definisce una proprietà che può essere animata.

(Ereditato da Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Quando sottoposto a override in una classe derivata, definisce una proprietà che può essere animata.

(Ereditato da Brush)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale.

(Ereditato da DependencyObject)
Redraw()

Fa sì che WebViewBrush ottenga i pixel di origine aggiornati da WebView associato e il relativo contenuto corrente. Ciò avviene in modo asincrono.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica.

(Ereditato da DependencyObject)
SetSource(WebView)

Imposta l'origine del contenuto per WebViewBrush.

SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject.

(Ereditato da DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)

Si applica a

Vedi anche