2013-04-05 111 views
0

如何從Silverlight 5瀏覽器外應用程序檢測Windows和Mac上的多個屏幕?Silverlight 5屏幕檢測

我正在查看Silverlight 5 for Winodws/Mac應用程序我想構建。現在Silverlight supports multiple windows在瀏覽器外運行模式下運行時,這似乎是一個基於我自己對WPF和.NET知識的不錯選擇。

我注意到Windows.Forms命名空間丟失(這是非常有意義的),但這留下了我似乎無法找到答案的上述問題。

我想過爲此使用Mono項目,但還沒有挖掘出一種方法,但仍然在尋找。我不是在尋找最好的方式,只是任何的方式。

僅供參考,屏幕檢測的目的是將第二個窗口設置爲全屏,以通過投影儀顯示材料。

回答

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平臺上的顯示信息。

如果您希望開發一個使用C#/ F#/ VB.Net的.Net應用程序,並且Windows和Mac都可以運行,Silverlight仍然是一個不錯的選擇,另一個是Mono

+0

你知道PInvoke是否可以在Mac上使用?我想過使用一個單獨的java應用程序,可以將屏幕信息寫入Mac版本的ini文件中。 – 2013-04-06 20:11:58

+0

@agrothe對不起,我在Mac上的Silverlight知識有限 – 2013-04-06 20:13:31

+0

謝謝,文章回答了這個問題。幫助閱讀:) – 2013-04-06 20:14:30

1

我不認爲你會找到答案。

看來,在Windows上,你可以用win32來實現這一點。但是,解決方案取決於p/invoke,這在Silverlight for Mac上不可用。

我懷疑託管代碼中有一個解決方案,它將在.NET或Mono中的Silverlight中運行。

此外,我會質疑在Silverlight中啓動一個新應用程序的決定;因爲版本5似乎是該框架的end of the line

+0

我知道它似乎是行尾,但vb6仍然可用於代碼:)。不是說任何人*應該*但。我希望通過Silverlight創建一個快速的多平臺。 Java是我猜想的另一種選擇,但它不是我所做的很多事情。 – 2013-04-06 19:22:41