如何最小化Silverlight应用程序到系统托盘

时间:2011-07-31 05:36:25

标签: silverlight silverlight-oob

我如何minimize Silverlight Out Of Browser申请windows system tray?有可能吗?

4 个答案:

答案 0 :(得分:3)

我喜欢这个问题!它指出了另一个显而易见的要求,即微软未能支持OOB应用程序。遗憾的是,这不是作为现有Silverlight API的一部分直接支持的。但是说过我们可以“探索”实现这个目标......(由于目前我的机器上缺少Visual Studio环境,下面的提示可能/可能不起作用,因为我自己还没有测试过它们。)

在Silverlight OOB应用程序中,Application类公开了一个“Install”方法,该方法在我们选择安装OOB应用程序时执行。

在此方法中,您可以尝试安装(使用提升的特权)自定义ActiveX控件(Windows应用程序)说MySilverlightHost。这个应用程序只不过是一个带有silverlight主机的Windows窗体。

是的!你听到我说得对。这家伙(http://firstfloorsoftware.com/blog/hosting-silverlight-outside-the-browser/)已经实现了一个基于自定义Windows窗体的silverlight主机。

现在,当您安装OOB时,部署到您系统的XAP文件将成为ActiveX应用程序的源,并将在其Silverlight主机控件中托管其内容。因为它是一个Windows应用程序,它可以配置为保留在系统托盘中。

请告诉我这是否指导您正确的方向。

答案 1 :(得分:1)

这是不可能的。 Silverlight没有可用的API来支持此功能。

答案 2 :(得分:0)

是的,可以通过Microsoft Native Extensions for Silverlight(NESL)实现。 参考:http://archive.msdn.microsoft.com/nesl

取自此网址: 当前版本的NESL提供对传感器,便携式设备,语音,任务栏等Windows 7功能的访问。

答案 3 :(得分: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