SkiaSharp 可以在 WPF 应用程序中使用吗?
Can SkiaSharp be used in a WPF Application?
我知道 SkiaSharp
canvas 可以放在 Xamarin 应用程序中的 Grid
中。这是一些示例(工作)代码:
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
<skia:SKCanvasView
x:Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface" />
但是当我尝试在 WPF 应用程序中做类似的事情时:
xmlns:skia="clr-namespace:SkiaSharp;assembly=SkiaSharp"
<skia:SKCanvas
Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface" />
我收到错误:
A value of type 'SKCanvas' cannot be added to a collection or dictionary of type 'UIElementCollection'.
是否可以在 WPF 的网格单元格中放置 SKCanvas
,或者整个页面是否必须是 SKCanvas
?
否则,how/can 你在 WPF 中使用 SkiaSharp
?
首先,您必须安装 SkiaSharp.Views.WPF
package, which will automatically install SkiaSharp
, too. The SkiaSharp
package alone will not contain the needed WPF control, which is SKElement
。
因为它是 FrameworkElement
,所以您可以将它放在视图中的任何位置。 SKCanvas
不是 WPF 兼容组件。要在 XAML 中使用 SKElement
,您必须引入其 XML 命名空间。
xmlns:skia="clr-namespace:SkiaSharp.Views.WPF;assembly=SkiaSharp.Views.WPF"
然后将 SKCanvas
控件放在您视图中的任意位置。
<skia:SKElement
Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface"/>
我知道 SkiaSharp
canvas 可以放在 Xamarin 应用程序中的 Grid
中。这是一些示例(工作)代码:
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
<skia:SKCanvasView
x:Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface" />
但是当我尝试在 WPF 应用程序中做类似的事情时:
xmlns:skia="clr-namespace:SkiaSharp;assembly=SkiaSharp"
<skia:SKCanvas
Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface" />
我收到错误:
A value of type 'SKCanvas' cannot be added to a collection or dictionary of type 'UIElementCollection'.
是否可以在 WPF 的网格单元格中放置 SKCanvas
,或者整个页面是否必须是 SKCanvas
?
否则,how/can 你在 WPF 中使用 SkiaSharp
?
首先,您必须安装 SkiaSharp.Views.WPF
package, which will automatically install SkiaSharp
, too. The SkiaSharp
package alone will not contain the needed WPF control, which is SKElement
。
因为它是 FrameworkElement
,所以您可以将它放在视图中的任何位置。 SKCanvas
不是 WPF 兼容组件。要在 XAML 中使用 SKElement
,您必须引入其 XML 命名空间。
xmlns:skia="clr-namespace:SkiaSharp.Views.WPF;assembly=SkiaSharp.Views.WPF"
然后将 SKCanvas
控件放在您视图中的任意位置。
<skia:SKElement
Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface"/>