如何为Surface Dial设备开发自定义交互功能
2016-11-11 09:58 微软一站式示例代码库 阅读(3074) 评论(0) 编辑 收藏 举报随着Surface Studio的发布,微软发布了与之相配套的外设硬件Surface Dial,用户可以将Surface Dail吸附在Surface Studio的屏幕上面,用旋转和点击的实体操作来操作应用程序。
目前Surface Dial 可以支持的终端硬件有三款:
- Surface Studio
- Surface Book
- Surface Pro 4
有上述之一硬件的小伙伴们可以尝试一下这款新鲜的产品。
下面,我用一款简单的UWP程序来介绍如何给Surface Dial这款外设开发自定义的交互逻辑。
前期准备:
- 请确保您的计算机操作系统是最新的Win10 Anniversary Update版本
- 请确保您的Visual Studio是VS2015 update3 版本
- Surface Dial设备(可选)
- Surface Studio, Surface Book 以及 Surface Pro 4 都是可选项,如果没有,并不影响案例代码的运行
运行例子:
如果您有surface dial设备,并且拥有Surface Studio, Surface Book或者Surface Pro4其中的任一一款终端,请在Visual Studio里面运行我们的案例代码,并且将Surface Dail吸附在屏幕上。您将会看到下面这个界面。
此时,您可以选择Surface Dial,界面中的滑动条会跟着您的转动而变化,点击Surface Dial的按钮,界面中的开关控件会打开或者关闭。
使用代码:
您可以使用代码去自定义Surface Dail在您的应用程序里的旋转和点击操作。
控制Surface Dail的核心类是RadialController ,可以在Windows.UI.Input这个名字空间下找到该类。您可以调用RadialController.CreateForCurrentView() 来获取该类的实体。
RadialController类实体对外公布了几个事件,在这个例子里我们只关注ButtonClicked 事件和 RotationChanged事件。前者会在Surface Dail被点击的时候调用,而后者则是响应旋转操作。
下面是例子里的核心代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public sealed partial class MainPage : Page { RadialController rdController = null ; public MainPage() { this .InitializeComponent(); // get controller rdController = RadialController.CreateForCurrentView(); // process click event rdController.ButtonClicked += RdController_ButtonClicked; // process rotate event rdController.RotationChanged += RdController_RotationChanged; } private void RdController_RotationChanged(RadialController sender, RadialControllerRotationChangedEventArgs args) { // change the slider according to the delta degree from rotating var deltaRatio = args.RotationDeltaInDegrees / 360.0f; this .slider.Value += this .slider.Maximum * deltaRatio; } private void RdController_ButtonClicked(RadialController sender, RadialControllerButtonClickedEventArgs args) { // switch the toggle to opposite status this .btnToggle.IsOn = ! this .btnToggle.IsOn; } } |
最后,您可以通过访问 How to implement custom interactions for Surface Dial 来下载完整的代码案例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!