WebViewBrush 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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 控件具有一个特征,即其他 UI 区域(如控件)不能在它之上呈现。 这是因为窗口区域在内部的处理方式,特别是处理输入事件的方式和屏幕绘制方式。 如果要呈现 HTML 内容并将其他 UI 元素放在该 HTML 内容之上,则应使用 WebViewBrush 作为呈现区域。 WebView 仍提供 HTML 源信息,你通过 SourceName 属性 (或通过调用 SetSource 引用该 WebView,方法和属性) 生成相同的结果。 WebViewBrush 没有此覆盖限制,但它不启用交互。
注意
前面的注释仅适用于为 Windows 8 编译的应用,即使在Windows 8.1上运行也是如此。 Windows 8.1引入了 WebView 控件的更改,可修复此处所述的问题。 对于Windows 8.1,预计仍使用 WebViewBrush 的方案并不常见。 在大多数情况下,只需使用 WebView 控件即可获取所需的功能。
可以将 WebViewBrush 应用于采用 Brush 的任何属性。 例如,可以使用 WebViewBrush 设置 Shape.Fill 或 Control.Background 。
将 WebViewBrush 与 WebView 控件源 关联有两种替代方法:
- 通过设置 SourceName 属性,按其标识符名称引用 源 WebView 。
- 通过引用引用、通过调用 SetSource 方法和传递 WebView 对象来引用源 WebView。
重要
通常需要为在 XAML 中声明的 WebViewBrush 调用 Redraw ,该 UI 与 WebView 源相同。 WebView 控件具有固有的异步行为,该行为在完全加载其内容时重新绘制控件。 但是,在分析 XAML 后,关联的 WebViewBrush 将立即呈现 (这可能在 WebView) 加载 URI 内容之前。 或者,可以等待在 WebViewBrush 上调用 SetSource,直到源内容完全加载 (例如,通过在 WebView.LoadCompleted 事件的处理程序中调用 SetSource。
Windows Phone 8.x 不支持此类。 不会捕获 WebView 内容。
构造函数
| WebViewBrush() |
初始化 WebViewBrush 类的新实例。 |
属性
| AlignmentX |
获取或设置 TileBrush 基磁贴中内容的水平对齐方式。 (继承自 TileBrush) |
| AlignmentY |
获取或设置 TileBrush 基磁贴中内容的垂直对齐方式。 (继承自 TileBrush) |
| Dispatcher |
获取与此对象关联的 CoreDispatcher 。 CoreDispatcher 表示可以访问 UI 线程上的 DependencyObject 的工具,即使代码是由非 UI 线程启动的。 (继承自 DependencyObject) |
| Opacity |
获取或设置 Brush 的不透明度。 (继承自 Brush) |
| RelativeTransform |
获取或设置使用相对坐标应用到画笔的转换。 (继承自 Brush) |
| SourceName |
获取或设置提供 HTML 内容的源 WebView 控件的名称。 |
| SourceNameProperty |
标识 SourceName 依赖属性。 |
| Stretch |
获取或设置一个值,该值指定此 TileBrush 的内容如何拉伸以适应其磁贴。 (继承自 TileBrush) |
| Transform |
获取或设置应用于画笔的转换。 (继承自 Brush) |