2014-12-07 64 views
1

我想實現自己的Windows Phone控件。值得注意的是,我想自己繪製它 - 在普通的WPF中,我只是簡單地覆蓋OnRender方法並提供我自己的實現。但是,Windows Phone上沒有可用的方法OnRender。我還有什麼其他選擇?Windows Phone中的OnRender等效

什麼是在我的情況不接受的是:

  • 借鑑位圖背景和顯示它
  • 使用矢量圖形代替光柵畫
+0

使用Canvas作爲其ControlTemplate的控件將執行此操作。您需要在Canvas.Children下添加元素。或者你可以看看WIN2D,它只是用一些很棒的GDI調用(比如DrawLine,DrawCircle等)來擴展Canvas。 – 2014-12-07 14:29:49

回答

2

由於Windows.UI。 Xaml沒有柵格圖形API,唯一的選擇是使用矢量圖形,渲染成位圖並顯示,或者到interop to DirectX

微軟的Win2D庫http://microsoft.github.io/Win2D(也見http://blogs.msdn.com/b/win2d/)通過C#公開了Direct2D,它可能是您尋找的最佳選擇。這是一項正在進行的工作,並提供了最基本的功能,但如果您需要更多功能,則需要自己完成互操作。

最接近的其他選擇是使用第三方庫(如WriteableBitmapEx)爲高級API繪製一個WriteableBitmap。您可以將生成的位圖提取到ImageBrush中以供顯示,而不需要顯式的Image控件。