【问题标题】:Exporting all content of ListView as Png将 ListView 的所有内容导出为 Png
【发布时间】:2021-08-26 08:44:24
【问题描述】:

我正在构建一个包含看板的应用程序,我想将其导出为 PNG 图像。该板由卡片状态(待办事项、正在做等)的 ListView 组成,每一个都是包含相同状态卡片的 ListView。 我已经能够使用 RenderTargetBitmap 将板导出为图像,但是,输出将包含可见的内容。相反,我想要一张包含所有卡片的图片。

老实说,我不认为这很简单,因为首先在页面上只呈现可见卡片,但我想知道是否有不同的方法来解决这个问题。

这就是出口板现在的样子

【问题讨论】:

    标签: c# .net uwp windows-10-universal xamarin.uwp


    【解决方案1】:

    将ListView的所有内容导出为Png

    目前,UWP 没有这样的 api 来获取长截图。恐怕你不能用RenderTargetBitmap 上课。

    我们可以想象,如果我们可以缩放当前视图,让所有内容都显示在当前窗口中,那么我们就可以得到完整的屏幕截图。因此,我们可以尝试将其放在ScrollViewer 中并将其设置为 ZoomMode 为启用。只需调用ChangeView 方法给它一个适当的ZoomFactor 值,以在可见的地方显示所有内容。

    <ScrollViewer ZoomMode="Enabled" >
        <Grid>
            <ListView>
               
    

    请注意,这种方式将禁用列表视图的 ui 虚拟化。如果我们缩放scrollviewer,当前窗口的有效像素会更低。

    如果您确实需要此功能,请随时通过 Windows 反馈中心发布您的要求。

    【讨论】:

    • 虽然我明白为什么它不会成为一个功能,但很遗憾。缩放有效,但如果要渲染的内容很多,输出图像很可能看起来很糟糕。我能想到的唯一另一种方法是在循环内的代码中生成控件,在单独的图像中渲染每个控件,然后将它们全部合并,这听起来有点牵强。
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2013-07-01
    • 1970-01-01
    • 2014-03-15
    相关资源
    最近更新 更多