我有一个透明的背景网页视图,有时我需要交互(为了墨水)。当我切换到When视图笔刷时,webviewbrush笔刷将透明度渲染为黑色。我想知道如何让渲染变得透明: C#代码:
private void MyInkToolbar_ActiveToolChanged(InkToolbar toolbar, object sender)
{
if (myInkToolbar.ActiveTool == objectSelect)
{
textCanvas.IsHitTestVisible = true;
testTiny.Visibility = Visibility.Visible;
testTinyOverlay.Visibility = Visibility.Collapsed;
}
else
{
if (textCanvas.IsHitTestVisible == true)
{
testTinyOverlay.Visibility = Visibility.Visible;
CaptureWebView();
testTiny.Visibility = Visibility.Collapsed;
textCanvas.IsHitTestVisible = false;
}
}
}
private void CaptureWebView()
{
WebViewBrush b = new WebViewBrush();
b.SetSource(testTiny);
b.Redraw();
testTinyOverlay.Fill = b;
}Xaml代码:
<Canvas x:Name="textCanvas">
<Grid Name="testTinyGrid" Width="200" Height="200" Background="Transparent">
<Rectangle x:Name="testTinyOverlay" Fill="Transparent"/>
<WebView x:Name="testTiny" DefaultBackgroundColor="Transparent" Source="ms-appx-web:///HTML/TinyEditor.html"/>
</Grid>
</Canvas>发布于 2020-06-24 10:19:50
WebView.DefaultBackgroundColor是一个额外的背景,DefaultBackgroundColor就像纸张,Html内容就像绘画。WebViewBrush相当于在渲染时拍摄当前WebView的快照。
如果WebView.DefaultBackgroundColor是透明,则意味着WebView本身没有背景,但背景颜色由底层元素(如页面本身)提供。这不是视觉问题,但快照无法提取任何背景像素,这是由于渲染WebViewBrush显示为黑色导致的,这表示图像没有背景颜色。
根据这种情况,解决方法是设置WebView的DefaultBackgroundColor,可以将其设置为与页面背景相同的颜色(例如白色),以保持相同的视觉效果。
谢谢。
https://stackoverflow.com/questions/62545964
复制相似问题