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 コントロールには、コントロールなどの他の UI 領域をその上にレンダリングできないという特性があります。 これは、ウィンドウ領域の内部的な処理方法、特に入力イベントの処理方法と画面の描画方法が原因です。 HTML コンテンツをレンダリングし、その HTML コンテンツの上に他の UI 要素を配置する場合は、レンダリング領域として WebViewBrush を使用する必要があります。 WebView は引き続き HTML ソース情報を提供し、SourceName プロパティを使用して (または SetSource を呼び出すことによって) その WebView を参照すると、メソッドとプロパティによって同じ結果が得られます。 WebViewBrush にはこのオーバーレイ制限はありませんが、相互作用は有効になりません。

注意

上記の解説は、Windows 8.1で実行されている場合でも、Windows 8 用にコンパイルされたアプリにのみ適用されます。 Windows 8.1では、ここで説明する問題を解決する WebView コントロールの変更が導入されています。 Windows 8.1の場合、WebViewBrush を引き続き使用するシナリオはあまり一般的ではないでしょう。 ほとんどの場合、 WebView コントロールを使用するだけで、必要な機能を取得できます。

Brush を受け取る任意のプロパティに WebViewBrush を適用できます。 たとえば、WebViewBrush を使用して Shape.Fill または Control.Background を設定できます。

WebViewBrush を WebView コントロール ソース に関連付ける方法は 2 つあります。

  • SourceName プロパティを設定して、識別子名でソース WebView を参照します。
  • SetSource メソッドを呼び出して WebView オブジェクトを渡すことで、ソース WebView を参照します。

重要

多くの場合、WebView ソースと同じ UI で XAML で宣言されている WebViewBrush に対して Redraw を呼び出す必要があります。 WebView コントロールには、コンテンツが完全に読み込まれるときにコントロールを再描画する本質的に非同期の動作があります。 ただし、関連付けられた WebViewBrush は、XAML が解析されるとすぐにレンダリングされます (これは、URI コンテンツが WebView によって読み込まれる前である可能性があります)。 または、ソース コンテンツが完全に 読み込 まれるまで (たとえば、WebView.LoadCompleted イベントのハンドラーで SetSource を 呼び出すなどして) WebViewBrush で SetSource を呼び出すのを待つことができます。

このクラスは、Windows Phone 8.x ではサポートされていません。 WebView コンテンツはキャプチャされません。

コンストラクター

WebViewBrush()

WebViewBrush クラスの新しいインスタンスを初期化します。

プロパティ

AlignmentX

TileBrush 基本タイル内のコンテンツの水平方向の配置を取得または設定します。

(継承元 TileBrush)
AlignmentY

TileBrush 基本タイル内のコンテンツの垂直方向の配置を取得または設定します。

(継承元 TileBrush)
Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。

(継承元 DependencyObject)
Opacity

ブラシの不透明度を取得または設定 します

(継承元 Brush)
RelativeTransform

相対座標を使用して、ブラシに適用される変換を取得または設定します。

(継承元 Brush)
SourceName

HTML コンテンツを提供するソース WebView コントロールの名前を取得または設定します。

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)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetSource(WebView)

WebViewBrush のコンテンツのソースを設定します。

SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください