如何以透明的方式捕获节点

Posted

技术标签:

【中文标题】如何以透明的方式捕获节点【英文标题】:How to capture a Node with transparent 【发布时间】:2021-04-18 17:39:28 【问题描述】:

例如,我有一个 UWP 应用,上面有一个节点“Button”。 现在,我想为这个按钮制作一个快照。并且,输出仅包含此 Button。

对于 JavaFX,我们有函数“node.snapshot()”,那么 C# 和 UWP 怎么样?

【问题讨论】:

你是什么节点? 【参考方案1】:

您可以使用RenderTargetBitmap 类(它表示可以使用 XAML 可视化树的组合内容填充的图像源)来完成这项工作。

例如:

//Page.xaml 
<StackPanel>
    <Button x:Name="capturedButton" Content="capture me" Margin="10"/>
    <Button x:Name="button" Content="click me" Margin="10" Click="button_Click"/>
    <Image x:Name="image" Margin="10" Width="200" Height="200" Stretch="None"/>
</StackPanel>

//Page.xaml.cs
private async void button_Click(object sender, RoutedEventArgs e)

    RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
    await renderTargetBitmap.RenderAsync(capturedButton);
    image.Source = renderTargetBitmap;

【讨论】:

感谢您的回复,很有用!

以上是关于如何以透明的方式捕获节点的主要内容,如果未能解决你的问题,请参考以下文章

如何捕获以编程方式更改的 tabBarController setSelectedIndex

如何以编程方式捕获iPhone控制台日志? [关闭]

我将如何以编程方式捕获内部音频?

如何以编程方式“捕获”对 UIWebView 的后向和转发请求?

WPF - 按下CTRL + SHIFT时如何捕获?

android如何以编程方式仅捕获应用程序中的日志条目