如何解决此“缺少程序集引用”错误?

时间:2019-07-25 07:03:00

标签: c# windows xaml uwp inkcanvas

我正在开发一个使用 Wacom Bamboo Slate 在画布上捕获实时笔触的应用程序。正在使用UWPC#平台开发该应用程序。

在画布上绘制后,将执行save feature。我正在使用this作为参考。下面是代码和错误消息:

private async void BtnSave_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder storageFolder = KnownFolders.SavedPictures;
            var file = await storageFolder.CreateFileAsync("sample.jpg", CreationCollisionOption.ReplaceExisting);

            CanvasDevice device = CanvasDevice.GetSharedDevice();
            CanvasRenderTarget renderTarget = new CanvasRenderTarget(device, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight, 96);

            using (var ds = renderTarget.CreateDrawingSession())
            {
                ds.Clear(Colors.White);
                ds.DrawInk(inkCanvas.InkPresenter.StrokeContainer.GetStrokes());
            }

            using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
            {
                await renderTarget.SaveAsync(fileStream, CanvasBitmapFileFormat.Jpeg, 1f);
            }
        }
  

CS1061'InkCanvas'不包含InkPresenter的定义,并且找不到可访问的扩展方法InkPresenter接受类型为InkCanvas的第一个参数(您是否缺少using指令或程序集引用?)

2 个答案:

答案 0 :(得分:0)

您是否考虑过:

RenderTargetBitmap rtb = new RenderTargetBitmap((int)inkCanvas.Width, (int)inkCanvas.Height, 96d, 96d, PixelFormats.Default);
rtb.Render(inkCanvas);

之后,您可以:

JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(fileStream);

答案 1 :(得分:0)

上面提到的示例可以在here中找到。

该示例使用Microsoft软件包CanvasDevice(版本1.6.0)的Microsoft.Graphics.Canvas名称空间部分中的Win2D.UWP。 UWP项目样本目标针对Windows 10的内部版本10240(最低10240)。

可以安装软件包Win2D.UWP

  • 使用菜单“项目>管理Nuget程序包”,或
  • 通过在“ Solution Explorer”的UWP项目中选择上下文菜单“ References”来
    1. 选择“已安装”并卸载当前的2d图形渲染包(如果有)。
    2. 选择“浏览”,查找Win2D.UWP并从Microsoft安装。

请注意,Win2D.UWP的最新版本于2018年5月17日更新为1.23.0版,要求目标平台为17134。

例如,在Win2D.UWP的1.23版本和UWP项目属性中目标版本设置为10240的版本中,“错误列表”可能会显示以下错误消息:

This version of Win2D requires Windows SDK >= 10.0.17134.0, but TargetPlatformVersion is 10.0.10240.0.  

可以在UWP项目属性中更改目标版本

  • 选择菜单“项目>项目名称属性”,或
  • 通过从“解决方案资源管理器”中的UWP项目中选择上下文菜单“属性”。

PS:在InitializeComponent();的{​​{1}}之后添加以下内容,以启用具有选择的输入设备类型的绘图:

MainPage.xaml.cs