2011-07-31 111 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 
相关问题