我知道SkiaSharp可以将画布放置在GridXamarin 应用程序中。这是一些示例(工作)代码:
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
Run Code Online (Sandbox Code Playgroud)
<skia:SKCanvasView
x:Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface" />
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在 WPF 应用程序中做类似的事情时:
xmlns:skia="clr-namespace:SkiaSharp;assembly=SkiaSharp"
Run Code Online (Sandbox Code Playgroud)
<skia:SKCanvas
Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface" />
Run Code Online (Sandbox Code Playgroud)
我收到错误:
A value of type 'SKCanvas' cannot be added to a collection or dictionary of type 'UIElementCollection'.
Run Code Online (Sandbox Code Playgroud)
是否可以SKCanvas在 WPF 中的网格单元格中放置一个,或者整个页面都必须是一个SKCanvas?
否则,如何/如何SkiaSharp在 WPF 中使用?
首先,您必须安装SkiaSharp.Views.WPF软件包,该软件包也会自动安装SkiaSharp。SkiaSharp单独的包将不包含所需的 WPF 控件,即SKElement.
由于它是FrameworkElement,您可以将其放置在视图中的任何位置。SKCanvas不是 WPF 兼容组件。要SKElement在 XAML 中使用 ,您必须引入其 XML 命名空间。
xmlns:skia="clr-namespace:SkiaSharp.Views.WPF;assembly=SkiaSharp.Views.WPF"
Run Code Online (Sandbox Code Playgroud)
然后将SKCanvas控件放置在您视图中的任何位置。
<skia:SKElement
Name="AUView"
Grid.Row="2"
PaintSurface="AUView_PaintSurface"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |