Compartilhar via


WebViewBrush Classe

Definição

Fornece um pincel que renderiza o conteúdo que está hospedado atualmente em um controle 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 .../>
Herança
Object Platform::Object IInspectable DependencyObject Brush TileBrush WebViewBrush
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

O exemplo de código específico do Windows 8 a seguir demonstra como usar um WebViewBrush para habilitar o conteúdo baseado em XAML para sobrepor conteúdo baseado em HTML. Neste exemplo, o controle WebView é exibido por padrão para que ele permaneça interativo. No entanto, quando a lista suspensa ComboBox está aberta, ela se sobrepõe ao controle WebView . Nesse caso, o WebView está oculto e o WebViewBrush exibe o conteúdo HTML em um Retângulo ocupando o mesmo espaço.

<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

Comentários

No Windows 8, o controle WebView tem a característica de que outras regiões da interface do usuário, como controles, não podem ser renderizadas sobre ele. Isso ocorre devido à forma como as regiões de janela são tratadas internamente, especialmente como os eventos de entrada são processados e como a tela desenha. Se você quiser renderizar o conteúdo HTML e também colocar outros elementos de interface do usuário sobre esse conteúdo HTML, deverá usar WebViewBrush como a área de renderização. O WebView ainda fornece as informações de origem HTML e você faz referência a esse WebView por meio da propriedade SourceName (ou chamando SetSource, o método e a propriedade produzem os mesmos resultados). O WebViewBrush não tem essa limitação de sobreposição, mas não habilita a interação.

Observação

As observações anteriores se aplicam somente a aplicativos compilados para Windows 8, mesmo quando executados em Windows 8.1. Windows 8.1 apresenta alterações no controle WebView que corrige os problemas descritos aqui. Para Windows 8.1, é esperado que os cenários em que você ainda usará um WebViewBrush não sejam muito comuns. Na maioria dos casos, você pode usar apenas um controle WebView e obter a funcionalidade necessária.

Você pode aplicar um WebViewBrush a qualquer propriedade que usa um Brush. Por exemplo, você pode definir Shape.Fill ou Control.Background com um WebViewBrush.

Há duas alternativas para associar um WebViewBrush a uma fonte de controle webview :

  • Referencie o WebView de origem pelo nome do identificador, definindo a propriedade SourceName .
  • Referencie o WebView de origem por referência, chamando o método SetSource e passando um objeto WebView .

Importante

Geralmente, é necessário chamar Redraw para um WebViewBrush declarado em XAML na mesma interface do usuário que é a origem do WebView . Um controle WebView tem um comportamento inerentemente assíncrono que redesenha o controle quando seu conteúdo é completamente carregado. Mas um WebViewBrush associado é renderizado assim que o XAML é analisado (que pode ser antes do conteúdo do URI ser carregado pelo WebView). Como alternativa, você pode esperar para chamar SetSource no WebViewBrush até que o conteúdo de origem seja totalmente carregado (por exemplo, chamando SetSource no manipulador para o evento WebView.LoadCompleted .

Não há suporte para essa classe no Windows Phone 8.x. O conteúdo do WebView não será capturado.

Construtores

WebViewBrush()

Inicializa uma nova instância da classe WebViewBrush .

Propriedades

AlignmentX

Obtém ou define o alinhamento horizontal do conteúdo no bloco base TileBrush .

(Herdado de TileBrush)
AlignmentY

Obtém ou define o alinhamento vertical do conteúdo no bloco base do TileBrush .

(Herdado de TileBrush)
Dispatcher

Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
Opacity

Obtém ou define o grau de opacidade de um pincel.

(Herdado de Brush)
RelativeTransform

Obtém ou define a transformação que é aplicada ao pincel, usando coordenadas relativas.

(Herdado de Brush)
SourceName

Obtém ou define o nome do controle WebView de origem que fornece o conteúdo HTML.

SourceNameProperty

Identifica a propriedade de dependência SourceName .

Stretch

Obtém ou define um valor que especifica como o conteúdo desse TileBrush se estende para caber em seus blocos.

(Herdado de TileBrush)
Transform

Obtém ou define a transformação que é aplicada ao pincel.

(Herdado de Brush)

Métodos

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Quando substituído em uma classe derivada, define uma propriedade que pode ser animada.

(Herdado de Brush)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
Redraw()

Faz com que o WebViewBrush obtenha pixels de origem atualizados do WebView associado e seu conteúdo atual. Isso acontece de forma assíncrona.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

(Herdado de DependencyObject)
SetSource(WebView)

Define a origem do conteúdo para o WebViewBrush.

SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)

Aplica-se a

Confira também