【问题标题】:Display SVG in UWP app image control, desktop and phone在 UWP 应用图像控件、桌面和手机中显示 SVG
【发布时间】:2017-09-20 04:46:16
【问题描述】:

有没有办法在 UWP 应用的 xaml 图像控件中显示 SVG 图像(来自 URL)

例如

<Image Source={Binding image_source}>

其中image_source 是图像的绝对路径。图片为 pngsvg 格式。

我的解决方案可以使用任何常见的图形格式(jpg、png、gif),但当图形是 svg 格式时什么也不显示。

我看过大量关于将 svg 转换为其他东西的文章,但这些信息来自一个不是我的网络服务,我怀疑它会被其他人使用。将大量图像更改为 png 或其他我怀疑的选项。

在我的应用程序中,图像位于列表视图中。

我看过有关转换器的文章并内置了对 svg 的支持,但它们似乎都不起作用。除了手动转换文件(不是一个选项)之外,我还没有在这里或任何地方找到任何有工作解决方案的人的文章

任何帮助将不胜感激。

【问题讨论】:

  • 看看igrali.com/2015/12/24/how-to-render-svg-in-xaml-windows-10-uwp 或者this 我认为你可以将.svg 转换为可以在UWP 中轻松显示的位图
  • 我标记了@Hannes 评论,因为这可能是一个很好的解决方案。我个人更喜欢像往常一样只使用 image.Source = 并且它可以工作。 (该答案可能会这样做,但示例并未表明会这样做)。这是我的建议。制作一个自定义图像控件,其工作方式与具有 Source 依赖属性的图像一样。只需检查 svg 类型的源并显示 XAML(很容易转换)或显示带有源的图像。这种方式在使用时的界面上与典型的图像没有区别。
  • SvgImageSource 是创作者更新 docs.microsoft.com/en-us/uwp/api/… 中的一项新功能。对于早期版本,您需要将其转换或显示在 WebView 中

标签: c# svg visual-studio-2015 uwp


【解决方案1】:

UWP 原生支持 SVG,您的解决方案应该可以工作。我想你的问题是由于缩放。确保您的图形图像没有超出边界并且您只能看到其中的透明部分。您可以尝试测试其他 SVG 文件以确认这一点并使用大小和 SVG ViewBox 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2017-09-10
    • 2018-11-06
    • 2016-12-25
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多