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

问题描述:

我有一个使用Visual Studio 2008和C#(智能设备项目)开发的Windows Mobile应用程序。当我运行应用程序时,顶部有一个开始菜单栏,底部有一个键盘栏。我如何让我的应用程序以全屏模式运行?全屏模式下的Windows Mobile应用程序

如果可能的话,我想有一个解决方案,让我打开全屏模式和关闭运行时(后点击例如某种形式的按钮)。

+0

要隐藏在开始菜单中,看到了这个问题:http://*.com/questions/600735/fullscreen-application-wm6-c – 2009-08-17 10:41:34

+0

不幸的解决方案仍有键盘工具栏上的底部。 – RaYell 2009-08-17 10:44:52

摆脱底部的键盘/菜单栏的很简单:只是删除从每个表单的MainMenu控件。

摆脱在屏幕的顶部开始菜单(又名任务栏)是比较困难的,而使用Windows API需要。 This link显示如何做到这一点。

有一种更简单的方法可以使您的应用程序全屏(对不起,现在很早,我现在不记得它),但更简单的方法有一个丑陋的副作用,其中当您切换时任务栏暂时重新出现到另一种形式在您的应用程序中,哪种杀死所需的信息亭效果。使用上面的API来隐藏任务栏可以防止发生这种情况。

但是,这种方法的危险:如果您的应用程序退出或崩溃,而不必取消隐藏任务栏,用户将没有取消隐藏它的方式,直到设备复位它仍将是不可见的。

+0

这正是我正在寻找的。谢谢。 – RaYell 2009-08-17 10:46:30

+0

如果您不担心切换窗体时短暂重新显示任务栏,则更简单的方法就是将窗体的WindowState设置为最大化。 – MusiGenesis 2009-08-17 12:02:52

检查微软的example

虽然例子是为Windows Mobile 2003,您可以从那里挑选SHFullScreen调用的语法。这里已经提取电话example

+0

这是Windows 2003应用程序的解决方案,它没有.NET支持。我正在寻找一个.NET解决方案。 – RaYell 2009-08-17 10:24:43

+0

@RaYell:这适用于Windows Mobile 2003,但适用于更高版本(例如Windows Mobile 6)。诚然,代码是非托管的,但只有重要的是调用SHFullScreen。你通过interop调用的那个函数。 – 2009-08-17 11:33:22

试试这个你的主要形式;它可能有所帮助:

this.WindowState = FormWindowState.Maximized; 
+0

这不起作用。它只是使窗口最大化。 – quantum 2012-10-20 01:22:59

我在Windows Mobile 6专业VGA模拟器上测试,它的工作原理。键盘按钮也错过了。

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