当前位置: 首页 > 编程语言 > C#

在UWP墨水canvas上显示背景图像分享

时间:2023-04-11 10:42:49 C#

C#学习教程:在UWPInkCanvas上显示背景图像WPF似乎允许InkCanvas有孩子,但在UWP中似乎不可能。我尝试了以下操作:但这不起作用;我也试过这个:公平地说,我对此并没有太大期望;无论如何,虽然它确实有点工作,但它使图像和InkCanvas看起来都不对,而且显然,我不允许保存生成的图像。理想情况下,会有背景图像或类似的东西。有什么我可以用来实现这个目标的吗?我想我可能不得不用标准画布替换InkCanvas,然后重新编写所有InkCanvas功能!所以你有几个问题:如何在Image控件上使用InkCanvas进行绘制。如何将结果保存到文件。这个例子我会使用一个简单的UWP应用程序,假设你在Assets文件夹中有一个“sample.jpg”文件,并且清单中有“ImageGallery”功能。要解决第一个问题,只需将InkCanvas和Image放入相同的容器(如Grid),但请记住顺序很重要:如果将InkCanvas放在第一位(就像您在问题中所做的那样)-它不会起作用。但是如果你把InkCanvas放在最后-一切正常,你可以在你的图像上画画。现在要解决第二个问题,您需要使用Win2D(安装nugetWin2D.uwp包),因为标准RenderTargetBitmap不会渲染InkCanvas内容。先绘制原图(直接从原图获取图像,比如从原始文件中获取),然后在上面绘制墨水画布的内容。MainPage完整代码(如果在上面加上xaml,就会有一个完整的工作示例):以上是C#学习教程:在UWPinkcanvas上显示背景图片。更多C#学习教程,希望大家多多关注——publicsealedpartialclassMainPage:Page{publicMainPage(){this.InitializeComponent();//只是设置墨水画布的一些属性,与你的问题没有直接关系ink.InkPresenter.InputDeviceTypes=CoreInputDeviceTypes.鼠标|CoreInputDeviceTypes.Touch;varattr=newInkDrawingAttributes();attr.Color=Colors.Red;attr.IgnorePressure=true;attr.PenTip=PenTipShape.Circle;);ink.InkPresenter.UpdateDefaultDrawingAttributes(attr);}privateasyncvoidBtnSave_Click(objectsender,RoutedEventArgse){//抓取输出文件StorageFolderstorageFolder=KnownFolders.SavedPictures;varfile=awaitCreateAsput.jpg("CreationCollisionOption.ReplaceExisting);CanvasDevicedevice=CanvasDevice.GetSharedDevice();CanvasRenderTargetrenderTarget=newCanvasRenderTar得到(设备,(int)ink.ActualWidth,(int)ink.ActualHeight,96);//从Assets文件夹中获取输入文件StorageFolderappInstalledFolder=Windows.ApplicationModel.Package.Current.InstalledLocation;StorageFolderassets=awaitappInstalledFolder.GetFolderAsync("资产");varinputFile=等待资产。GetFileAsync("样本.jpg");使用(vards=renderTarget.CreateDrawingSession()){ds.清除(颜色。白色);var图像=等待CanvasBitmap。LoadAsync(设备,输入文件。路径);//先画你的图像ds.DrawImage(image);//然后在其上绘制墨水画布的内容ds.DrawInk(ink.InkPresenter.StrokeContainer.GetStrokes());}//保存结果使用(varfileStream=awaitfile.OpenAsync(FileAccessMode.ReadWrite)){awaitrenderTarget.SaveAsync(fileStream,CanvasBitmapFileFormat.Jpeg,1f);}}}本文收集自网络,不代表立场。如涉及侵权,请点击维权联系管理员删除,如有转载请注明出处:

最新推荐
猜你喜欢