我正在制作UWP应用程序。我的要求是以编程方式获取TaskBar的大小(此应用程序将在不同分辨率的平板电脑上运行)。在stackoverflow上关注了很多答案(实际上它与隐藏/显示任务栏更相关)后,我找到了这个:
How do I get the taskbar's position and size?
但是在UWP应用程序的情况下无法做到这一点。还有其他方法可以获得TaskBar的高度。
请注意:如果我的应用程序,TaskBar始终可见。我不打算隐藏它
谢谢!
答案 0 :(得分:3)
嘛!!因此,经过大量的互联网搜索,在stackoverflow和建议上看到类似的答案,似乎在UWP应用程序中计算TaskBar高度并不是那么简单或简单的任务。然而,对于我的情况,我最终得到了解决方法,这很好。但我会继续找到一个合适的方法。假设我的屏幕分辨率 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)当我使用TaskBar Locked(可见)运行应用程序时,我将 view.VisibleBounds.Height 设为 828 。
2)当我使用TaskBar AutoHidden(Invisible)运行应用程序时,我将 view.VisibleBounds.Height 设为 868 。
这让我觉得 900-868 = 32 可能是Tittle Bar Height,当我隐藏任务栏后我从828跳到868意味着 868-828 = 40 < / strong>可能是任务栏高度。
结论:
标题栏高度= 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;
我希望它对其他人也有用。 谢谢!
答案 1 :(得分:1)
不能简单地完成它,因为不是每个支持UWP应用程序的平台都有桌面或任务栏(并且桌面不算作设备功能之一,例如 相机,麦克风,移动或位置传感器)!
如果您需要访问桌面,则必须创建桌面应用程序。