【问题标题】:OnRender equivalent in Windows PhoneWindows Phone 中的 OnRender 等效项
【发布时间】:2014-12-07 13:05:53
【问题描述】:

我想为 Windows Phone 实现我自己的控件。问题是,我想自己绘制它 - 在常规 WPF 中,我只需覆盖 OnRender 方法并提供我自己的实现。但是,Windows Phone 上没有可用的OnRender 方法。我还有哪些其他选择?

在我的情况下可以接受的是:

  • 在背景中绘制位图并显示它
  • 使用矢量图形而不是光栅图

【问题讨论】:

  • 一个以 Canvas 作为其 ControlTemplate 的控件可以解决问题。您将需要在 Canvas.Children 下添加元素。或者您可以查看 WIN2D,它只是通过一些很棒的 GDI 调用(如 DrawLine、DrawCircle 等)扩展了 Canvas。

标签: c# wpf drawing windows-phone-8.1 onrender


【解决方案1】:

由于 Windows.UI.Xaml 没有光栅图形 API,因此唯一的选择是使用矢量图形、渲染成位图并显示它,或者 interop to DirectX

http://microsoft.github.io/Win2D 上的 Microsoft Win2D 库(另请参阅 http://blogs.msdn.com/b/win2d/)通过 C# 公开 Direct2D,可能是您正在寻找的最佳匹配。这是一项正在进行的工作,并提供了最基本的功能,但如果您需要更多功能,您需要自己进行互操作。

最接近的其他选项是使用 3rd 方库(例如 WriteableBitmapEx)作为高级 API 来绘制到 WriteableBitmap。您可以将生成的位图提取到 ImageBrush 中进行显示,而无需显式的 Image 控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多