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 콘텐츠를 렌더링하고 다른 UI 요소를 해당 HTML 콘텐츠 위에 배치하려면 WebViewBrush를 렌더링 영역으로 사용해야 합니다. WebView는 여전히 HTML 원본 정보를 제공하며 SourceName 속성을 통해 WebView를 참조합니다(또는 SetSource를 호출하여 메서드와 속성이 동일한 결과를 생성). WebViewBrush에는 이 오버레이 제한이 없지만 상호 작용을 사용하도록 설정하지는 않습니다.

참고

앞의 설명은 Windows 8.1 실행되는 경우에도 Windows 8용으로 컴파일된 앱에만 적용됩니다. Windows 8.1 여기에 설명된 문제를 해결하는 WebView 컨트롤의 변경 내용을 소개합니다. Windows 8.1 경우 WebViewBrush를 계속 사용하는 시나리오는 매우 일반적이지 않을 것으로 예상됩니다. 대부분의 경우 WebView 컨트롤만 사용하고 필요한 기능을 가져올 수 있습니다.

Brush를 사용하는 모든 속성에 WebViewBrush를 적용할 수 있습니다. 예를 들어 WebViewBrush를 사용하여 Shape.Fill 또는 Control.Background 를 설정할 수 있습니다.

WebViewBrush를 WebView 컨트롤 원본과 연결하기 위한 두 가지 대안이 있습니다.

  • SourceName 속성을 설정하여 식별자 이름으로 Source WebView를 참조합니다.
  • SetSource 메서드를 호출하고 WebView 개체를 전달하여 참조하여 원본 WebView를 참조합니다.

중요

WebView 원본과 동일한 UI의 XAML에서 선언된 WebViewBrush에 대해 Redraw를 호출해야 하는 경우가 많습니다. WebView 컨트롤에는 콘텐츠가 완전히 로드될 때 컨트롤을 다시 그리는 본질적으로 비동기 동작이 있습니다. 그러나 연결된 WebViewBrush는 XAML이 구문 분석되는 즉시 렌더링됩니다( WebView에서 URI 콘텐츠를 로드하기 전일 수 있습니다). 또는 원본 콘텐츠가 완전히 로드될 때까지 WebViewBrush에서 SetSource를 호출할 때까지 기다릴 수 있습니다(예: WebView.LoadCompleted 이벤트에 대한 처리기에서 SetSource를 호출하는 경우).

이 클래스는 Windows Phone 8.x에서 지원되지 않습니다. WebView 콘텐츠는 캡처되지 않습니다.

생성자

WebViewBrush()

WebViewBrush 클래스의 새 instance 초기화합니다.

속성

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 instance 특정 DependencyProperty에 대한 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
SetSource(WebView)

WebViewBrush에 대한 콘텐츠의 원본을 설정합니다.

SetValue(DependencyProperty, Object)

DependencyObject에 대한 종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보