栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

迁移桌面程序到MS Store(12)——WPF使用UWP InkToolbar和InkCanvas

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

迁移桌面程序到MS Store(12)——WPF使用UWP InkToolbar和InkCanvas

我们在《迁移桌面程序到MS Store(4)——桌面程序调用Win10 API》提到了对Win10 API的调用,但仍存在无法在WPF中使用UWP控件的问题,虽然都是XAML控件,但却是两套命名空间下的同名类型,无法混用。

人总会被现实打败,强大如某软也得向生活低头,UWP一直没有起色,某软的老大又一心去搞Azure。Windows平台的重振,似乎想走回头路,从1903版本开始,支持在.NET Framwork的WPF和WinForm工程中,直接使用部分的UWP控件了。首当其冲的,就是有点骚包的InkToolbar和InkCanvas。

接下来我们就来试试如何在WPF工程中,使用UWP的InkToolbar和InkCanvas。

首先创建一个空的WPF工程,完成后,在Nuget的搜索界面填入 Microsoft.Toolkit.Wpf.UI.Controls ,选中第一个进行安装。

完成安装后,打开MainWindow.xaml,添加对命名空间的引用xmlns:Controls="clr-namespace:Microsoft.Toolkit.Wpf.UI.Controls;assembly=Microsoft.Toolkit.Wpf.UI.Controls"。接着就可以在节点中添加UWP版本的InkToolbar和InkCanvas控件了。


    
        
            
            
        
        
        
    

同时我们还需要在MainWindow.xaml.cs中设置InputDeviceTypes。

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.myInkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen;
        }
    }

然后按下F5运行,某软的骚操作来了……因为仅在1903以后的版本才支持这种骚操作(10.0.18226是稍早的preview版),所以需要做额外的处理才可以。

我们这里有两种选择,一是通过《迁移桌面程序到MS Store(1)——通过Visual Studio创建Packaging工程》来打包这个WPF程序,然后在Packaging工程的属性里,将Target version和Minimum version同时设置为Windows 10, version 1903 (10.0.18362) 。这是MSDN上推荐的标准做法,这样做的好处在于,打包好的程序可以直接上传MS Store。

如果我们想保持exe的可执行文件形式,还有另一种做法,在Project文件上右键点击Add->New Item,添加一个manifest文件。

在这个文件中,找到,然后做如下编辑:

  
    
      
 
      
      
 
      
      
 
      
      
 
      
      
 
      
      
      
 
    
  

保存后,再通过F5运行,即发现一切正常,不在出现之前的运行时错误了。

本篇我们介绍了如何在WPF工程中使用UWP InkToolbar和InkCavas。因为这个功能仅在1903后的版本支持,所以下一篇我们会介绍如何简单地判断Win10 API 版本,在运行时判断是否执行对应版本的代码。

Github:

https://github.com/manupstairs/WPFInkSample.git


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/230534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号