首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP:如何获得TaskBar高度

UWP:如何获得TaskBar高度
EN

Stack Overflow用户
提问于 2015-11-24 16:01:52
回答 2查看 2.1K关注 0票数 0

我做的一个UWP application.My要求是通过编程获得TaskBar的大小(这个应用程序将在不同分辨率的平板上运行)。在跟踪了关于堆栈溢出(实际上与隐藏/显示任务栏更相关)上的许多答案之后,我完成了以下操作:

How do I get the taskbar's position and size?

但这是不可能的情况下,UWP apps.Is有任何其他方式来获得高度的TaskBar。

请注意:在我的申请中,TaskBar总是可见的,我不打算隐藏它

谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-26 09:05:28

好吧!因此,经过大量的网上搜索,在堆栈溢出和建议上看到了类似的答案,似乎在UWP应用中计算TaskBar高度并不是那么直接或简单的任务。然而,对于我的情况,我的工作围绕着,它工作得很好。但我会继续寻找合适的方法。假设我的屏幕分辨率是1600x900,下面是我所做的:

代码语言:javascript
复制
    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.Height828

2)当我使用view.VisibleBounds.Height TaskBar AutoHidden(不可见)运行应用程序时,我得到了868

这给了我一个想法,900- 868 =32可以是小条高度,当我从828跳到868之后,Task意味着868-828=40可以是任务栏的高度。

结论:

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

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

保持高度= view.VisibleBounds.Height ( 828)

如果将上述三种方法组合在一起,则可以使用以下代码获得900 (所需高度):

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

我希望这对其他人也有帮助。谢谢!!

票数 3
EN

Stack Overflow用户

发布于 2015-11-24 16:37:19

它不能简单地做,因为并不是每个支持UWP应用程序的平台都有桌面或TaskBar (而且桌面不算为设备功能之一,如照相机、麦克风、移动或位置传感器)!

如果您需要访问桌面,您将不得不创建一个桌面应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33898342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档