c# - 如何以透明的方式捕获节点
问题描述
例如,我有一个 UWP 应用程序,它上面有一个节点“按钮”。现在,我想为这个按钮制作一个快照。并且,输出仅包含此 Button。
对于 JavaFX,我们有函数“node.snapshot()”,那么 C# 和 UWP 怎么样?
解决方案
您可以使用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;
}
推荐阅读
- python - 猜一个包含大写、小写和数字的 3 个字母字符串(按任意顺序)
- git - 将 repo 的内容复制到文件夹内的另一个 repo,保留历史记录、分支、标签
- postgresql - 为什么 text 值不等于 char 值?
- c# - 带有 Azure Function .Net Core 2.2/3.0 的 TestServer 返回 404
- batch-file - 从 BIOS 信息中检索 PC 型号
- matlab - 皮肤检测和遮盖除皮肤以外的一切
- javascript - Vue 和 Firebase 实时数据库获取推送 ID 值
- android - 如何在没有第三方库的情况下加密 sqlite 文本(Android)
- c# - 当 RedirectStandardOutput 为 true 时,tasklist 命令不会退出
- python - 使用 keras 自定义层时构建错误