当前位置: 首页 > news >正文

C#在二合一平板电脑关于旋转模式相关设置

二合一平板电脑会根据方向调整而旋转,下面是介绍如何 设置应用不跟随旋转,设置系统旋转开关,监听旋转变化

  1. 设置单个应用旋转固定方向SetDisplayAutoRotationPreferences

setDisplayAutoRotationPreferences 函数 (winuser.h) - Win32 apps

       // 定义方向偏好枚举,用于控制屏幕显示方向[Flags]public enum ORIENTATION_PREFERENCE : int{/// <summary>/// 无方向偏好,允许所有方向/// </summary>ORIENTATION_PREFERENCE_NONE = 0x0,/// <summary>/// 横屏方向(正常横向)/// 屏幕宽度大于高度,标准的横向显示/// </summary>ORIENTATION_PREFERENCE_LANDSCAPE = 0x1,/// <summary>/// 竖屏方向(正常纵向)/// 屏幕高度大于宽度,标准的纵向显示/// </summary>ORIENTATION_PREFERENCE_PORTRAIT = 0x2,/// <summary>/// 翻转横屏方向/// 屏幕宽度大于高度,但上下翻转的横向显示/// </summary>ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,/// <summary>/// 翻转竖屏方向/// 屏幕高度大于宽度,但左右翻转的纵向显示/// </summary>ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8}// 声明外部方法[DllImport("user32.dll")]private static extern bool SetDisplayAutoRotationPreferences(ORIENTATION_PREFERENCE orientation);// 供应用程序调用的方法public static bool LockLandscape(){// 同时锁定正常var preference = ORIENTATION_PREFERENCE.ORIENTATION_PREFERENCE_LANDSCAPE;return SetDisplayAutoRotationPreferences(preference);}
  1. 设置系统旋转开关SetDisplayAutoRotation

SetDisplayAutoRotation这个方法没找到官方API,这个方式设置立即生效的,如果是注册表设置需要重启才生效

        // 禁用启用自动旋转[DllImport("user32.dll", EntryPoint = "#2507")]public static extern bool SetDisplayAutoRotation(bool enable);
  1. 监听设备旋转变化

使用Win10 Api的SimpleOrientationSensor SimpleOrientationSensor 类 (Windows.Devices.Sensors) - Windows UWP applications

internal class OrientationManager
{#region 监听方向变化private SimpleOrientationSensor simpleSensor;private SimpleOrientation currentOrientation;/// <summary>/// 监听方向变化重启应用/// </summary>public void RegisterOrientationChanged(){try{if (simpleSensor != null){simpleSensor.OrientationChanged -= SimpleSensor_OrientationChanged;}simpleSensor = SimpleOrientationSensor.GetDefault();AnnotatorService.Log.Info($"初始化方向传感器:{simpleSensor != null}");if (simpleSensor != null){currentOrientation = simpleSensor.GetCurrentOrientation();// 订阅方向变化事件simpleSensor.OrientationChanged += SimpleSensor_OrientationChanged;}}catch (Exception e){AnnotatorService.Log.Error(e);}}public void UnregisterOrientationChanged(){if (simpleSensor != null){simpleSensor.OrientationChanged -= SimpleSensor_OrientationChanged;simpleSensor = null;}}public Action<SimpleOrientation> OnDelayOrientationChanged;private async void SimpleSensor_OrientationChanged(SimpleOrientationSensor sender, SimpleOrientationSensorOrientationChangedEventArgs args){AnnotatorService.Log.Info($"方向变化:{args.Orientation}");if (currentOrientation == args.Orientation) return;currentOrientation = args.Orientation;if (IsSignificantOrientationChange(currentOrientation)){await Task.Delay(300);OnDelayOrientationChanged?.Invoke(args.Orientation);}}private bool IsSignificantOrientationChange(SimpleOrientation newOrientation){// 过滤掉不重要的方向变化// 例如:Faceup/Facedown 可能不需要处理switch (newOrientation){case SimpleOrientation.Faceup:case SimpleOrientation.Facedown:return false;default:return true;}}#endregion}
http://www.hskmm.com/?act=detail&tid=34220

相关文章:

  • 2026 中考游记
  • MinIO 介绍(3)--MinIO 客户端 mc 管理员功能
  • 8.16
  • 2025-10-19
  • 一文读懂隔离见证
  • 12131
  • 关于火柴盒的记忆
  • PWN手的成长之路-19-int_overflow
  • FFmpeg开发笔记(八十四)使用国产的librestreaming实现RTMP直播
  • 2025 年闪测仪厂家企业品牌推荐排行榜,一键式闪测仪,卧式闪测仪,影像闪测仪,立式闪测仪,2D3D 混合式闪测仪,高精度闪测仪,大量程闪测仪,复合式闪测仪公司推荐
  • 2025 年耐火砖厂家企业品牌推荐排行榜,绝热,轻质,莫来石,保温,莫来石轻质,氧化铝泡沫,氧化铝空心球,抗渗碳,高温轻质莫来石,高温耐火砖公司推荐
  • 2025 年护栏板厂家企业品牌推荐排行榜,波形,高速,镀锌,二波,三波,喷塑,国标,绳索,公路护栏板,护栏板立柱公司推荐
  • 2025 年船用锅炉厂家企业品牌推荐排行榜,基于市场口碑,评选值得信赖的船用锅炉公司推荐
  • 2025 年反应釜厂家企业品牌推荐排行榜,实验室,高压,加氢,不锈钢,试验室,氢化,聚合,高温,钛材反应釜公司推荐
  • 2025 年铸铁闸门厂家企业品牌推荐排行榜,四川铸铁闸门,镶铜铸铁闸门,渠道铸铁闸门,圆形铸铁闸门,方形铸铁闸门公司推荐
  • 2025 年启闭机厂家企业品牌推荐排行榜,四川启闭机,四川卷扬启闭机,四川螺杆启闭机,固定卷扬启闭机,手电两用螺杆启闭机,电装启闭机公司推荐
  • 2025 年清污机厂家企业品牌推荐排行榜,四川清污机,格栅清污机,回转式清污机,回转式格栅清污机,不锈钢清污机公司推荐公司推荐
  • AI视频换人工具来了!动作表情完美还原,附下载链接
  • java入门代码示例
  • 下一代超级计算的CPU设计之道
  • 10.18 学校模拟赛 T4
  • 元推理框架,自指自洽,人工智能领域的杂交水稻
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名Linux软件资源库需求洞察
  • 极端的利己主义与虚伪的利他主义
  • WinRAR-7.13-Final-x64-烈火汉化版
  • Docker 常用命令整理
  • Windows端口查看查找exe进程名
  • 【GitHub-SSH】Linux 通用生产ssh-key命令
  • 2025年不锈钢清洗钝化液厂家推荐榜单,环保型不锈钢管酸洗钝化液,不锈钢清洗剂公司精选!