Silverlight 5屏幕检测

时间:2013-04-05 18:14:36

标签: silverlight mono cross-platform silverlight-5.0

如何从Silverlight 5浏览器外应用程序中检测Windows和Mac上的多个屏幕?

我正在寻找Silverlight 5以获得我想构建的Winodws / Mac应用程序。现在Silverlight supports multiple windows在浏览器外模式下运行时,根据我自己对WPF和.NET的了解,这似乎是一个不错的选择。

我注意到Windows.Forms命名空间丢失了(这很有道理),但这让我无法找到答案。

我已经考虑过使用Mono项目,但是没有从他们的任何一个挖出一个方法,但仍在搜索。我不是在寻找最好的方式,只需任何方式。

仅供参考,屏幕检测的目的是将第二个窗口设置为全屏,以便通过投影仪显示材料。

2 个答案:

答案 0 :(得分:1)

我认为你不会找到答案。

似乎在Windows上,您可以使用win32实现此目的。但是,解决方案依赖于p / invoke,这在Silverlight for Mac上不可用。

我怀疑托管代码中有一个解决方案,它将在Silverlight中以.NET或Mono运行。

另外,我会质疑在Silverlight中启动新应用程序的决定;因为版本5似乎是该框架的end of the line

答案 1 :(得分:1)

Mac和Windows之间Silverlight out-of-browser应用程序的行为存在差异,请参阅Silverlight Differences on Windows and Macintosh。可以检测运行应用程序的平台,并仅对主机平台进行有效调用。

Pete Brown的文章Creating Big Silverlight Windows and Getting Monitor Resolutions and Positions with PInvoke介绍了如何通过Win32 EnumDisplayMonitorsGetMonitorInfo函数在Windows平台上获取显示信息。

如果您想使用在Windows和Mac上运行的C#/ F#/ VB.Net开发.Net应用程序,另一个是Mono,那么Silverlight仍然是一个不错的选择。