2011-07-31 38 views

回答

3

我喜歡這個問題!它指向另一個明顯的要求,即微軟未能支持OOB應用程序。令人遺憾的是,這不是作爲現有Silverlight API的一部分直接支持的。但是說過我們可以「探索」實現...(下面的提示可能不會工作,因爲我自己還沒有測試它們,因爲我的機器上目前缺少Visual Studio環境!)

在Silverlight OOB應用程序,Application類公開了一個「安裝」方法,該方法在我們選擇安裝OOB應用程序時執行。

在這種方法中,您可以嘗試安裝(使用提升的priviliges)您自定義的ActiveX控件(Windows應用程序)說MySilverlightHost。這個應用程序只是一個Windows窗體中有一個Silverlight主機。

是的!你聽到我說得對。這傢伙(http://firstfloorsoftware.com/blog/hosting-silverlight-outside-the-browser/)已經實現了一個基於自定義Windows窗體的Silverlight主機。

現在,當安裝OOB時,部署到系統的XAP文件將成爲ActiveX應用程序的源代碼,並將其內容託管在其Silverlight主機控制中。而且由於它是一個Windows應用程序,它可以配置爲保留在系統托盤中。

讓我知道這是否會引導您正確的方向。

+1

什麼語言/平臺,你會建議使用ActiveX應用程序?本機運行時的C++?在.NET上的C#?也許VB6?順便說一句,有許多Windows特有的功能,Silverlight「無法」支持,許多開發人員惱火,Silverlight不支持如此簡單的「明顯要求」。如果微軟已經提供了支持所有這些功能的API,他們都會更加高興。哦,等等,他們有它的.NET WPF。 – AnthonyWJones

+1

是的Anthony我知道WPF會爲我們做所有這些......但根據這個問題,這是特定於OOB的,因爲不支持安裝OOB作爲標準的Windows應用程序,所以它缺乏所有這些功能。想象一下,如果有這樣的設施,那麼OOB就會比現在更大!我曾經說過,這只是一個指導或想法。我沒有在這方面做過工作,也不知道我給出的提示是否可行。我在答覆開始時已經說過。我不想在這裏創造一場辯論。 –

+1

由於Silverlight 5擴展了'可信應用程序'模型的功能(直接從PInvoke中調用Silverlight中的現有非託管代碼),現在應該可以將OOB應用程序最小化爲托盤,請參閱:microsoft.com/silverlight/future/#trusted可以有人確認這一點? – Mike

1

這是不可能的。沒有可用於Silverlight的API來支持此功能。

0

是的,它可以通過Microsoft本機擴展的Silverlight(NESL)。 REF:http://archive.msdn.microsoft.com/nesl

從這個網址中選取: NESL的當前版本提供訪問Windows 7的功能,如傳感器,便攜式設備,語音,任務欄和更多。

+0

在SO上,當提供到外部網站的鏈接時,通常最好至少提供關於在外部鏈接改變或被刪除的情況下的內容的高級摘要。未來的SO訪問者仍然會有*某些東西*與之合作。 – Fluffeh

0
Private Sub FullScr(sender As Object, e As MouseEventArgs) 
    Application.Current.Host.Content.IsFullScreen = True 
End Sub 

Private Sub Nrml(sender As Object, e As MouseEventArgs) 
    Application.Current.Host.Content.IsFullScreen = False 
End Sub 

Private Sub Min(sender As Object, e As MouseEventArgs) 
    Application.Current.MainWindow.WindowState = WindowState.Minimized 
End Sub 
相關問題