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) |