在WPF中使用SVG文件作为图标的正确方法是什么 | 您所在的位置:网站首页 › svg图片怎么改颜色 › 在WPF中使用SVG文件作为图标的正确方法是什么 |
Windows 10 build 15063“创建者更新”原生支持SVG图像(尽管有一些问题)到针对Windows 10的UWP/UAP应用程序。 如果您的应用程序是WPF应用程序而不是UWP/UAP应用程序,您仍然可以使用此API (在经历了许多困难之后):Windows 10 build 17763“2018年10月更新”引入了XAML岛的概念(作为一种“预览”技术,但我相信在应用程序商店中是允许的;在所有情况下,随着Windows 10 build 18362“2019年5月更新”XAML岛不再是预览功能,并且完全支持),允许您在WPF应用程序中使用UAP和控件。 您需要首先使用,并使用某些与用户数据或系统交互的Windows10API(例如,在Windows10UWP webview中从磁盘加载图像或使用toast通知API来显示toast),您还需要将您的WPF应用程序与包标识关联(在Visual Studio2019中非常容易)。不过,使用Windows.UI.Xaml.Media.Imaging.SvgImageSource类应该不需要这样做。 使用方法(如果你在UWP上,或者你已经按照上面的说明在WPF下添加了XAML岛支持)就像将的Source设置为SVG的路径一样简单。这相当于使用SvgImageSource,如下所示: 然而,以这种方式(通过XAML)加载的SVG图像是may load jagged/aliased。一种解决方法是指定一个double+您的实际高度/宽度的RasterizePixelHeight或RasterizePixelWidth值: 这可以通过在基本镜像的ImageOpened事件中创建一个新的SvgImageSource来动态解决: var svgSource = new SvgImageSource(new Uri("ms-appx://" + Icon)); PrayerIcon.ImageOpened += (s, e) => { var newSource = new SvgImageSource(svgSource.UriSource); newSource.RasterizePixelHeight = PrayerIcon.DesiredSize.Height * 2; newSource.RasterizePixelWidth = PrayerIcon.DesiredSize.Width * 2; PrayerIcon2.Source = newSource; }; PrayerIcon.Source = svgSource;混叠可能很难在非高dpi屏幕上看到,但这里尝试说明它。 这是上述代码的结果:一个Image使用初始SvgImageSource,其下的第二个Image使用在ImageOpened事件中创建的SvgImageSource: ![]() 这是上图的放大视图: ![]() 而这是底部(抗锯齿,正确的)图像的放大视图: ![]() (您需要在新的选项卡中打开图像并以全尺寸查看,以欣赏其中的差异) |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |