Windows Mobile全屏模式下的应用程序

4

我有一个使用Visual Studio 2008和C#(Smart Device Project)开发的Windows Mobile应用程序。当我运行该应用程序时,顶部会显示开始菜单栏,底部会显示键盘栏。我该如何使我的应用程序运行在全屏模式下?

如果可能,我希望有一个解决方案,可以在运行时(例如单击某个表单按钮后)打开和关闭全屏模式。


要隐藏开始菜单,请参见此问题:https://dev59.com/fkbRa4cB1Zd3GeqP3LtX - Matt Hamilton
不幸的是,该解决方案仍然会在底部留下键盘工具栏。 - RaYell
4个回答

6
摆脱底部的键盘/菜单栏很容易:只需从每个表单中删除MainMenu控件即可。
摆脱位于屏幕顶部的开始菜单(又称任务栏)更加困难,需要使用Windows API。此链接展示了如何实现。
有一种更简单的方法使应用程序全屏(抱歉,我现在记不清了),但是这种简单的方法会产生一个丑陋的副作用,即当您在应用程序中切换到另一个表单时,任务栏会短暂地重新出现,这会破坏所需的信息亭效果。使用上述API隐藏任务栏可以防止发生这种情况。
然而,这种方法存在危险:如果您的应用程序退出或崩溃而没有取消隐藏任务栏,则用户将无法取消隐藏,并且它将保持不可见,直到设备被重置。

如果你不担心任务栏在切换窗体时短暂重新出现,更简单的方法就是将窗体的WindowState设置为Maximized。 - MusiGenesis

2

请查看微软的示例

虽然该示例是针对Windows Mobile 2003的,但您可以从中获取SHFullScreen调用的语法。以下是已经提取出来的调用和示例


这是针对没有.NET支持的Windows 2003应用程序的解决方案。我正在寻找一个.NET解决方案。 - RaYell
@RaYell:这是针对 Windows Mobile 2003 的,但在后续版本(例如 Windows Mobile 6)上也可以工作。虽然代码是非托管的,但唯一重要的是调用 SHFullScreen 函数。您可以通过互操作来调用该函数。 - Josip Medved

0

我在Windows Mobile 6 Professional VGA模拟器上进行了测试,它可以正常工作。但是键盘按钮也没有。

this.WindowState = FormWindowState.Maximized;
this.Menu = null;
this.ControlBox = false;

0

在您的主窗体上尝试这个;它可能会有所帮助:

this.WindowState = FormWindowState.Maximized;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接