如何从Silverlight 5浏览器外应用程序中检测Windows和Mac上的多个屏幕?
我正在寻找Silverlight 5以获得我想构建的Winodws / Mac应用程序。现在Silverlight supports multiple windows在浏览器外模式下运行时,根据我自己对WPF和.NET的了解,这似乎是一个不错的选择。
我注意到Windows.Forms
命名空间丢失了(这很有道理),但这让我无法找到答案。
我已经考虑过使用Mono项目,但是没有从他们的任何一个挖出一个方法,但仍在搜索。我不是在寻找最好的方式,只需任何方式。
仅供参考,屏幕检测的目的是将第二个窗口设置为全屏,以便通过投影仪显示材料。
答案 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 EnumDisplayMonitors和GetMonitorInfo函数在Windows平台上获取显示信息。
如果您想使用在Windows和Mac上运行的C#/ F#/ VB.Net开发.Net应用程序,另一个是Mono,那么Silverlight仍然是一个不错的选择。