2011-03-22 14 views
23

Estoy construyendo una aplicación de escritorio C# con una interfaz de usuario simple. Debido a mi familiaridad con HTML/CSS, y una iteración previa basada en la web de una aplicación muy similar, sería ideal si pudiera volver a utilizar algunas páginas HTML/CSS existentes que tengo como interfaz de usuario para esta nueva aplicación de escritorio.¿Usa una página web como interfaz de usuario en una aplicación de escritorio C#?

¿Es eso posible con C#? ¿Alguien puede mostrar un ejemplo simple de usar una página HTML/CSS como la interfaz de usuario de una aplicación de escritorio C#?

+0

¿Qué quiere decir con aplicación de escritorio? ¿Te refieres a WinForms? ¿No es asp.net una opción? –

+0

Me refiero a una aplicación que se ejecuta en una máquina de usuarios finales. No es * una aplicación web. –

+0

sí, en ese caso es una aplicación de escritorio; en C# puedes crear una aplicación win o wpf. – ukhardy

Respuesta

1

Desafortunadamente, ni WinForms ni WPF son lo suficientemente parecidos a HTML/CSS para ese tipo de uso. Podrá reutilizar los conceptos de diseño y el arte, por supuesto. Y, con WPF siendo lo más parecido a él, es posible que incluso conserve gran parte del código de código subyacente.

Pero la respuesta corta es: No se

+0

Puede agregar capacidades de navegador completamente funcionales en aplicaciones de Windows. ** Casi todos los navegadores comunes que pueden ejecutarse en Windows son aplicaciones de Windows **. – ukhardy

+1

@ukhardy: Me atrevería a decir que TODOS los navegadores capaces de funcionar en Windows son aplicaciones de Windows ... ¿Cuál es su punto? –

+1

Te equivocas allí puedes consolar aplicaciones. – ukhardy

1

Usted podría intentar agregar un control de explorador Web a una aplicación de formas para mostrar su página. Pero esto tendrá que ser alojado remotamente ya que el código no podrá ejecutarse localmente, excepto si escuchas los enlaces específicos en C# y luego realizas las acciones.

También puede probar suerte en WPF, que es una nueva tecnología para crear gui's de buen aspecto con un margen de ganancia muy similar al html, que retomará rápidamente con su experiencia html.

3

Puede usar el control WebBrowser para agregar la funcionalidad del navegador web a su aplicación.

Puede crear sus propios html (s) y establecer su control WebBrowser para mostrar esas páginas. Puede navegar haciendo clic en hipervínculos o usando los atajos de teclado para avanzar y retroceder en el historial de navegación. De forma predeterminada, puede acceder a funciones adicionales del navegador mediante el menú contextual

Incluso puede administrar esas páginas de forma centralizada (por ejemplo, en LAN) y todos los clientes en LAN pueden conectarse a esta ubicación central. De esta manera puede modificar las páginas centralmente.

Comprobar un tutorial en MSDN:

How to: Add Web Browser Capabilities to a Windows Forms Application

+1

¿Puedes manejar eventos de esas páginas, como clics de botón y cosas por el estilo? –

+0

@Martinho Fernandes: Sí, puede llamar eventos de control y métodos de script implementados en las páginas desde el código de su aplicación cliente. – ukhardy

+1

Tal vez sea solo yo, pero esto plantea la pregunta de "¿por qué tener una aplicación en lugar de simplemente hacer todo el contenido web y ejecutarlo en el navegador de preferencia del usuario?" –

5

CefSharp (https://github.com/cefsharp/CefSharp) es una buena manera de embedd cromo, pero todavía se necesita un servidor web. Eche un vistazo a http://www.ultidev.com/products/Cassini/ a la alternativa para IIS.

+0

Para aplicaciones de escritorio, si usamos CefSharp, ¿todavía necesitamos un servidor web? –

+1

@Eric K. Sí, aún necesita un servidor web. Puede crear su propio servidor web e incrustarlo en su aplicación, eche un vistazo a esta publicación. https://codehosting.net/blog/BlogEngine/post/Simple-C-Web-Server –

8

Otras respuestas son anticuadas, nuevas buenas opciones:

  • Neutronium - Sólo un HTML// CSS vista de la interfaz de usuario JS para una aplicación .NET, requiere MVVM (al estilo de WPF), la arquitectura de aplicaciones. Lo mejor para las aplicaciones .NET ya escritas que pueden aprovechar la interfaz de usuario HTML/JS/CSS.
  • Electron + Electron-Edge - plataforma multiplataforma de aplicaciones HTML/JS/CSS + interfaz para el código .NET. Lo mejor para las nuevas aplicaciones de Electron que solo necesitan algunas llamadas a .NET.
3

Puede intentar utilizar un control basado en cromo - DotNetBrowser. Este control proporciona amplias opciones de interactividad, como la manipulación DOM y eventos DOM, que pueden ser útiles en su caso.

Además, hay un artículo que muestra cómo utilizar una página web como HTML interfaz de usuario en una aplicación de escritorio # C: https://www.infoq.com/articles/html-desktop-net

Afiliación divulgación: Yo trabajo con el equipo, que creó DotNetBrowser.

Cuestiones relacionadas