2011-07-31 20 views

Respuesta

3

Me gusta esta pregunta! Apunta a otro requisito obvio que Microsoft no pudo soportar con las aplicaciones OOB. Lamentablemente, esto no se admite directamente como parte de la API de Silverlight existente. Pero una vez dicho esto, podríamos "explorar" lograr esto ... (las sugerencias a continuación pueden o no funcionar ya que yo mismo no las he probado debido a la falta de entorno Visual Studio actualmente en mi máquina!)

En una La aplicación OOB Silverlight, la clase Application expone un método de "Instalación" que se ejecuta cuando seleccionamos instalar la aplicación OOB.

En este método, puede intentar la instalación (utilizando privilegios elevados) de su control ActiveX personalizado (aplicación de Windows), digamos MySilverlightHost. Esta aplicación no es más que un Windows Form con un host Silverlight.

Sí! Me escuchaste bien. Este chico (http://firstfloorsoftware.com/blog/hosting-silverlight-outside-the-browser/) ha implementado un servidor Silverlight personalizado basado en Windows.

Ahora cuando su OOB está instalado, el archivo XAP que se implementa en su sistema sería la fuente de la aplicación ActiveX y alojará su contenido en su Control de host Silverlight. Y debido a que es una aplicación de Windows, se puede configurar para permanecer en la bandeja del sistema.

Avíseme si esto lo guía en la dirección correcta.

+1

¿En qué idioma/plataforma recomendaría que se creara la aplicación ActiveX? C++ en Native Runtime? C# en .NET? VB6 tal vez? Por cierto, hay muchas características específicas de Windows que Silverlight "no" admite y hay tantos desarrolladores molestos por el hecho de que Silverlight no es compatible con tal y simple "requisito obvio". Todos serían mucho más felices si Microsoft hubiera entregado una API que admite todas estas características. Oh, espera, tienen su llamado .NET WPF. – AnthonyWJones

+1

Sí Anthony Sé que WPF hará todo esto por nosotros ... pero según la pregunta esto es específico de OOB y porque no hay soporte para instalar OOB como una aplicación de Windows estándar es lo que hace que carezca de todas esas características. ¡Imagínense si hubiera tal facilidad, entonces OOB hubiera sido un éxito mayor de lo que es ahora! Y de nuevo, he dicho que esto es solo una guía o idea. No he trabajado en esto y no sé si los consejos que di esto funcionarán. Ya lo dije al principio de la respuesta. No estoy tratando de crear un debate aquí. –

+1

Dado que Silverlight 5 amplía las características del modelo de "Aplicación de confianza" (llame al código no administrado existente directamente desde Silverlight con PInvoke), ahora es posible minimizar las aplicaciones OOB en la bandeja, consulte: microsoft.com/silverlight/future/#trusted. alguien confirma esto? – Mike

1

Esto no es posible. No hay API disponible para Silverlight para admitir esto.

0

Sí, es posible a través de Microsoft Native Extensions para Silverlight (NESL). ref: http://archive.msdn.microsoft.com/nesl

Tomado de esta url: La versión actual de NESL proporciona acceso a características de Windows 7, como sensores, dispositivos portátiles, Discurso, barra de tareas y más.

+0

En SO, cuando se proporciona un enlace a un sitio externo, a menudo es mejor proporcionar al menos un resumen de alto nivel de los contenidos en caso de que el enlace externo cambie o se elimine. Los futuros visitantes SO aún tendrán * algo * para trabajar. – 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 
Cuestiones relacionadas