UWP:如何获取任务栏高度

2023-12-06

我正在制作一个 UWP 应用程序。我的要求是以编程方式获取任务栏的大小(该应用程序将在不同分辨率的平板电脑上运行)。在遵循 stackoverflow 上的许多答案(实际上与隐藏/显示任务栏更相关)之后,我得到了这个:

如何获取任务栏的位置和大小?

但对于 UWP 应用程序,这是无法完成的。是否有其他方法来获取任务栏的高度。

请注意:在我的应用程序中,任务栏始终可见。我不打算隐藏它

Thanks!!


出色地!!因此,在互联网上进行了大量搜索之后,在 stackoverflow 上看到类似的答案和建议,似乎计算 UWP 应用程序中的任务栏高度并不是那么直接或简单的任务。但是对于我的情况我最终得到了这个解决办法效果很好。但我会继续寻找合适的方法。假设我的屏幕分辨率是1600x900,所以这就是我所做的:

    private void GetScreenDimension()
    {

        //To get Screen Measurements e.g. height, width, X,Y...
        ApplicationView view = ApplicationView.GetForCurrentView();
        //Getting the Window Title Bar height(In my case I get :Top=32,Bottom=860)
        double titleBarHeight = view.VisibleBounds.Top;
        //Getting the TaskBar Height
        double taskBarHeight = view.VisibleBounds.Top + (view.VisibleBounds.Top / 4);
        //Getting the workable Height of the screen ( excluding Task Bar Height)
        double availableheight = GridTimelineContent.ActualHeight - taskBarHeight;
        double availablewidth = GridTimelineContent.ActualWidth;

        if (_viewModel != null)
        {
            _viewModel.AvailableHeight = availableheight;
            _viewModel.AvailableWidth = availablewidth;
            //Getting the actual Physical height (i.e including TitleBar Height and Task Bar Height, gives 900 in my case which is what I wanted)                              
            _viewModel.ActualScreenHeight = view.VisibleBounds.Height + titleBarHeight + taskBarHeight;

            _viewModel.PageWidth = (this as Page).ActualWidth;

        }
    }

请注意:

1)当我在任务栏锁定(可见)的情况下运行应用程序时,我得到view.VisibleBounds.Height as 828.

2)当我使用 TaskBar AutoHidden(Invisible) 运行应用程序时,我得到view.VisibleBounds.Height as 868.

这给了我一个想法900-868=32可能是标题栏高度,当我隐藏任务栏后从 828 跳到 868 意味着868-828=40可以是任务栏高度。

结论:

标题栏高度 = view.VisibleBounds.Top(即 32)

任务栏高度 = view.VisibleBounds.Top(即 32)+ (view.VisibleBounds.Top / 4)(这是8);(32+8 = 总计 40)

剩余高度 = view.Visible Bounds.Height(这是828)

如果我将以上三者结合起来,我会使用以下代码行得到 900(所需高度):

_viewModel.ActualScreenHeight = view.VisibleBounds.Height + titleBarHeight + taskBarHeight;

我希望它对其他人也有用。 谢谢!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UWP:如何获取任务栏高度 的相关文章

  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • python+win32:检测窗口拖动

    有没有办法检测何时使用 python pywin32 在窗口中拖动不属于我的应用程序的窗口 我想对其进行设置 以便当我拖动标题与桌面边缘附近的图案匹配的窗口时 当松开鼠标时它会捕捉到边缘 我可以编写代码 以便在释放鼠标时将所有具有该标题的窗
  • 更改 mingw' 启动目录或创建 mingw 符号链接

    设置 mingw 控制台启动目录的最简单方法是什么 我只使用 mingw 进行编译 但由于缺乏编辑器甚至符号链接 我很困惑如何告诉 mingw 控制台出现在不同的目录而不是常规的主目录中 如果有人知道如何像 cygwin 那样将 真正的 符
  • 以编程方式从 java 代码中查找 java.exe 的绝对路径

    如果我有一个由用户启动的 java jar 或类文件 假设在环境变量中设置了 java 路径 那么我如何从代码中找出 java exe javaw exe 的绝对路径文件正在启动 就像在 ubuntu 上一样 我们可以运行 which ja
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

    更大的问题是一般如何使用实时 ETW 网络堆栈事件 但我特别感兴趣Microsoft Windows NDIS PacketCapture 提供程序 所有其他网络堆栈提供程序都部分工作 但 NDIS PacketCapture NDIS P
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 为什么我只能用管理员权限才能导入Python中的某些模块?

    我正在努力解决 Python 2 7 中的一些奇怪问题 我写了一个很长的工具 在其中导入不同的模块 我必须首先使用它安装pip 该工具将在公司内部共享 不同的用户在其特定机器上拥有不同的权限 当另一个用户登录我的计算机 我在那里拥有管理员权
  • NodeJS Express Windows 最大连接数设置

    在哪里设置nodejs的最大连接数 用于使用express get 在 Windows 10 中 与linux中的最大文件 描述符 设置有关吗 有该设置的 Windows 版本吗 最好是在nodejs中进行设置 以便在迁移到unix时兼容
  • 将 CrashDumps 转储到应用程序运行所在的同一文件夹中

    我编写了一个应用程序 我希望对其进行一定程度的自动调试 我想使用 Windows 错误报告将故障转储输出到应用程序运行所在的同一文件夹中 我的想法是 我可以让我的应用程序在它自己的文件夹中查找任何 dmp 文件 然后根据需要上传它们进行分析
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • 常见的 Windows 编译器上有哪些 std::locale 名称可用?

    该标准对于什么构成有效的语言环境名称几乎没有提及 只有传递无效的区域设置名称才会导致std runtime error 哪些语言环境名称可用于常见的 Windows 编译器 例如 MSVC MinGW 和 ICC 好吧 C 和 C 语言环境
  • 非托管 C++ 中的默认打印机

    我正在寻找一种使用非托管 C 查找 Windows 默认打印机名称的方法 找到了大量 NET 示例 但非托管没有成功 谢谢 以下是如何获取当前打印机和默认打印机的列表 如果有一台设置为默认打印机 另请注意 如果用户没有打印机或未将打印机名称
  • 卸载以前的版本安装新版本的安装项目

    我创建了一个安装项目并安装在Windows系统中 在安装安装项目之前 我将其设置为 DetectNewInstallerVersion true and RemovePreviousVersion True 我也每次都换版本 但是 如果我重
  • 所见即所得与 Unicode

    我在 Delphi 中编写了一个 Windows 程序 该程序使用 GetCharWidth 和 Em Square 将文本非常精确地放置并换行到屏幕和打印机 这对于 ANSI 文本效果很好 您只需要检索和计算 255 个字符的宽度 但当您
  • 无需开发者模式安装开发的应用程序

    我开发了一个 Windows 10 UWP 应用程序 这个应用程序应该在公司使用 所以我通过Visual Studio 2015的内置工具构建它 为此 我遵循了本指南 打包适用于 Windows 10 的通用 Windows 应用 http
  • 为什么我在 Windows 上使用 async 和 wait 时会收到 NotImplementedError 错误?

    我有这个代码 import os import time import asyncio async def run command args Example from http asyncio readthedocs io en lates

随机推荐

  • 如何使用正则表达式验证多封电子邮件?

    在对 Stackoverflow 进行快速研究后 我无法找到使用正则表达式进行多电子邮件验证的任何解决方案 拆分 JS 函数不适用 但由于某种原因 应用程序后端等待一个电子邮件以 分隔的字符串 以下是要求 应使用以下规则验证电子邮件 A Z
  • 如何知道@RequestMapping的哪个参数被调用

    这是我的 RequestMapping注解 RequestMapping loginBadCredentials loginUserDisabled loginUserNumberExceeded public String errorLo
  • Outlet 无法连接到 CollectionView 单元格中的重复内容

    当我尝试连接已声明为的 UICollectionViewCell 中的 UILabel 时 property nonatomic weak IBOutlet UILabel Title 它表明 插座无法连接到重复内容 我做了一些搜索 发现我
  • 在 Python 中使用 WlanScan 强制 wifi 扫描

    我想知道如何执行WlanScanpython 中的函数用于启动无线网络扫描 我正在使用 python 模块win32wifi 它需要使用获得的句柄WlanOpenHandle和接口 GUIDpInterfaceGuid 我不知道如何获得这个
  • 如何将附加变量传递到下划线模板

    我有一个主干视图 它在下划线模板中呈现搜索结果 由于我想在结果中突出显示搜索词 因此我在模板中使用了以下打印方法 print someKey replace searchTerm b searchTerm b 它按预期工作 但我必须设置se
  • 如何在 SQL Server 2017 中对简单 Json 数组执行Where子句?

    假设我的数据库中有一个名为attributes以具有此值为例 pages Page1 我怎样才能做一个where子句 以便我可以过滤掉其中包含 Page1 的行 select JSON QUERY Attributes pages from
  • 第一次没有创建数据库

    如何使用EF6重新创建数据库 我已经尝试过以下两篇文章 但是 我不知道为什么它不起作用并出现相同的错误 如何在不使用更新数据库的情况下生成启用了迁移的 EF6 数据库 已为上下文启用迁移 但数据库不存在或不包含映射表 我已经在网络服务器上发
  • 使用 AR(1) 项进行 OLS 估计

    由于我无法解释的原因 因为我不能 不是因为我不想 我办公室使用的流程需要在 Eviews 上运行一些回归 Eviews 上使用的方程规范为 dependent variable c independent variable ar 1 此外
  • OpenCover MSBuild 集成 - 未生成结果

    让 OpenCover 在我的机器上工作后 下一步是让它与构建服务器一起工作 我一直在尝试将 OpenCover 与 Bamboo Build Server 上的 MSBuild 集成 我已按如下方式修改了 Build proj 以在构建解
  • Laravel 5 中的加密和解密

    我一直在寻找有关在 Laravel 中加密和解密值的想法 例如 VIN 号 员工 ID 卡号 社会保障号等 最近在 Laravel 网站上发现了这一点 https laravel com docs 5 6 加密 我的问题是 如何在刀片模板上
  • imshow() 将灰色图像显示为白色图像

    我计算了一个值在 0 到 255 之间的图像 当我使用 imageview 时 图像以灰度正确显示 但是当我想保存该图像或用 imshow 显示它时 我有一个白色图像 或者有时到处都有一些黑色像素 而使用 imageview 时 有人能帮我
  • YT 未定义 - 未捕获的 ReferenceError:[youtube api]

    删除了不需要的代码演示 嘿 我正在实现 Youtube Video Player Api 我在控制台中看到某种错误 视频如何完美播放 但我想知道为什么会出现错误 如果我将代码保留在骨架模式之外 就不会出现任何错误 有人可以解释一下吗 Tha
  • 具有自定义列渲染器排序的 Rally 网格

    背景 当我尝试按使用自定义渲染器的列进行排序时 没有任何反应 它将排序从 ASC 更改为 DESC 来回更改 但数据的顺序从未改变 我假设这是因为没有定义如何对我使用自定义渲染器操作的数据进行排序 但我似乎找不到向列添加排序器或排序函数的方
  • Chrome 放弃了 Java 支持

    我在我的应用程序中使用 Java 小程序 今天我惊讶地看到了redirect来自我的页面和来自 java 的下一条消息 In details我读过有关 Chrome 放弃 NPAPI 支持的报道 最近 谷歌修改了他们的计划 现在声明他们计划
  • 有没有可以将数字拼音转换为带有声调标记的拼音的库?

    只是想知道是否有人知道可以将汉语拼音转换为声调的类库 例如 nin2 hao3 ma 到 n n h o ma 它会类似于这个答案 但希望使用 NET 框架 这是我对 Greg Hewgill 的移植蟒蛇算法到 C 到目前为止我还没有遇到任
  • 刚开始学习Java。为什么 main() 位于类内部?

    我正在学习 Java 我注意到main 被放在一个类中 为什么 我不考虑我的main 成为任何对象的成员 所以请告诉我如何解决这个问题 我不考虑我的main 成为任何对象的成员 这不是因为它是一个static方法 它不属于任何对象 而是属于
  • 在法国机器上执行时出现 java.lang.NumberFormatException

    在下面的代码中 在解析值时 有时我会在法国机器上遇到 NumberFormat 异常 double txPower DecimalFormat df new DecimalFormat txPower txPower getDeltaP l
  • 在 Windows 主机上调试 VMWare 中的 Linux 内核

    我正在开发我的第一个内核模块 所以我对此有点陌生 我的模块偶尔会产生恐慌 并且我无法使用 printk 深入了解它 据我所知 我的调试选项是 1 找到生成的OOPS消息并使用ksymoops or 2 尝试使用 kgdb 进行远程调试 我正
  • JOptionPane 每行有多个按钮?

    我将如何展示JOptionPane showinputDialog 与多个JButtons每行 我不是在谈论Yes No Cancel按钮但有多个自定义标签JButtons显示在内容区域JOptionPane showinputDialog
  • UWP:如何获取任务栏高度

    我正在制作一个 UWP 应用程序 我的要求是以编程方式获取任务栏的大小 该应用程序将在不同分辨率的平板电脑上运行 在遵循 stackoverflow 上的许多答案 实际上与隐藏 显示任务栏更相关 之后 我得到了这个 如何获取任务栏的位置和大