有没有图书馆
- 允许将 svg 直接绘制到 Windows 窗体应用程序
- 到 WPF 应用程序
我用Inkscape绘制图形和设计一切,因为我喜欢那个程序。然后我有那些令人惊叹的 svgs 并且必须将它们导出到 png (WinForm) 以使用它们或将它们转换为 xaml-code (WPF) ( Kaxaml帮助我)。
有没有办法直接使用我的 svgs?
有没有图书馆
我用Inkscape绘制图形和设计一切,因为我喜欢那个程序。然后我有那些令人惊叹的 svgs 并且必须将它们导出到 png (WinForm) 以使用它们或将它们转换为 xaml-code (WPF) ( Kaxaml帮助我)。
有没有办法直接使用我的 svgs?
哇,我刚刚读到Inkscape 支持另存为 XAML。到现在为止我还没有意识到这种耻辱。
但这仍然不能解决我的 WinForms 问题......
我个人讨厌微软的产品/开发工具中没有对 SVG 的原生支持。我发现了两个相当完整但仍然不成熟的 SVG 库,它们在撰写本文时似乎很活跃,但肯定需要贡献者。
IIRC 两个库都输出一个可以通过 Image 类直接使用的绘图对象;你会明白的,它们都非常易于使用。
如果您想将它们直接加载到 WPF 中,我可以从以下位置获得更好的结果:https ://github.com/ElinamLLC/SharpVectors
是的,您可以使用AB4D的 ReaderSVG 直接从 XAML 获取 WPF。
关于 WinForms,删除了之前指向 Kent Boogart 示例的链接,因为它在 2019 年的某个时候被删除。
从此dotnetways 帖子中复制以下内容
要将 WPF 控件或 WPF 用户控件(在此示例中为 wpfControl)托管到 Windows 窗体应用程序中,请创建 ElementHost 类的实例并将您的 WPF 控件/用户控件作为子项添加到 ElementHost 的实例中。
using System.Windows.Forms.Integration;
//Assembly: WindowsFormsIntegration (in WindowsFormsIntegration.dll)
//...
ElementHost elementHost = new ElementHost();
elementHost.Dock = DockStyle.None;
elementHost.Child = wpfControl;
现在,将 ElementHost 的实例添加到 Windows 窗体中的容器控件(例如此处的 containerPanel)
containerPanel.Controls.Add(elementHost);