Поделиться через


WebViewBrush Класс

Определение

Предоставляет кисть, которая отрисовывает содержимое, размещенное в элементе управления 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 .../>
Наследование
Object Platform::Object IInspectable DependencyObject Brush TileBrush WebViewBrush
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

В следующем примере кода для Windows 8 показано, как использовать WebViewBrush, чтобы позволить содержимому на основе XAML перекрывать содержимое на основе HTML. В этом примере элемент управления WebView отображается по умолчанию, чтобы оставаться интерактивным. Однако если раскрывающийся список ComboBox открыт, он перекрывается элементом управления WebView . В этом случае WebView скрыт, а WebViewBrush отображает HTML-содержимое в прямоугольнике , занимая то же пространство.

<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

Комментарии

В Windows 8 элемент управления WebView имеет ту характеристику, что другие области пользовательского интерфейса, такие как элементы управления, не могут быть отрисованы поверх него. Это связано с тем, как области окна обрабатываются внутри, в частности, как обрабатываются входные события и как рисуется экран. Если вы хотите отобразить HTML-содержимое, а также разместить другие элементы пользовательского интерфейса поверх этого HTML-содержимого, следует использовать WebViewBrush в качестве области отрисовки. WebView по-прежнему предоставляет сведения об источнике HTML, и вы ссылаетесь на этот WebView через свойство SourceName (или путем вызова SetSource метод и свойство дают одинаковые результаты). WebViewBrush не имеет этого ограничения наложения, но не включает взаимодействие.

Примечание

Приведенные выше замечания относятся только к приложениям, скомпилированным для Windows 8, даже если они работают на Windows 8.1. Windows 8.1 внесены изменения в элемент управления WebView, которые устраняют описанные здесь проблемы. Для Windows 8.1 предполагается, что сценарии, в которых вы по-прежнему будете использовать WebViewBrush, не будут очень распространенным явлением. В большинстве случаев можно просто использовать элемент управления WebView и получить необходимые функциональные возможности.

WebViewBrush можно применить к любому свойству, принимающему кисть. Например, можно задать Shape.Fill или Control.Background с помощью WebViewBrush.

Существует два варианта связывания WebViewBrush с источником элемента управления WebView :

  • Укажите ссылку на исходный WebView по имени идентификатора, задав свойство SourceName .
  • Ссылка на исходный WebView по ссылке путем вызова метода SetSource и передачи объекта WebView .

Важно!

Часто требуется вызвать Redraw для WebViewBrush, объявленного в XAML в том же пользовательском интерфейсе, что и источник WebView . Элемент управления WebView имеет асинхронное поведение, которое перерисовывает элемент управления при полной загрузке его содержимого. Но связанный WebViewBrush отрисовывается сразу после анализа XAML (это может быть до загрузки содержимого URI WebView). Кроме того, можно дождаться вызова SetSource в WebViewBrush, пока исходное содержимое не будет полностью загружено (например, путем вызова SetSource в обработчике для события WebView.LoadCompleted .

Этот класс не поддерживается в Windows Phone 8.x. Содержимое WebView не будет захватываться.

Конструкторы

WebViewBrush()

Инициализирует новый экземпляр класса WebViewBrush .

Свойства

AlignmentX

Возвращает или задает горизонтальное выравнивание содержимого на базовой плитке TileBrush .

(Унаследовано от TileBrush)
AlignmentY

Возвращает или задает вертикальное выравнивание содержимого на базовой плитке TileBrush .

(Унаследовано от TileBrush)
Dispatcher

Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
Opacity

Возвращает или задает степень непрозрачности кисти.

(Унаследовано от Brush)
RelativeTransform

Возвращает или задает преобразование, которое применяется к кисти с использованием относительных координат.

(Унаследовано от Brush)
SourceName

Возвращает или задает имя исходного элемента управления WebView , предоставляющего HTML-содержимое.

SourceNameProperty

Определяет свойство зависимости SourceName .

Stretch

Возвращает или задает значение, указывающее, как содержимое этого TileBrush растягивается в соответствии с его плитками.

(Унаследовано от TileBrush)
Transform

Получает или задает преобразование, которое применяется к кисти.

(Унаследовано от Brush)

Методы

ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна.

(Унаследовано от DependencyObject)
GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Определяет свойство, которое можно анимировать.

(Унаследовано от Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

При переопределении в производном классе определяет свойство, которое можно анимировать.

(Унаследовано от Brush)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
Redraw()

Заставляет WebViewBrush получать обновленные исходные пиксели из связанного WebView и его текущего содержимого. Это происходит асинхронно.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetSource(WebView)

Задает источник содержимого для WebViewBrush.

SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

Применяется к

См. также раздел