WebViewBrush Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
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 .../>
- Наследование
- Атрибуты
Требования к 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) |