2011-05-19 15 views
5

Como heredaría System.Windows.SplashScreen, tiene que enriquecer esta clase por la posibilidad de construirse al cargar una imagen en una ruta precisa.Cómo construir un SplashScreen desde un archivo de imagen cargado, no un recurso de proyecto

Por System.Windows.SplashScreen definición ofrece sólo estos dos constructores:

public SplashScreen(string resourceName); 
public SplashScreen(Assembly resourceAssembly, string resourceName); 

Como todavía me siento incómodo con WPF, que no tienen la sola idea de dónde empezar modificaciones?

¿O debería rediseñar completamente mi propia clase SplashScreen?

Respuesta

0

puede que no le respondan lo que usted está buscando. pero qué tal si agrega esa imagen (que tiene una ruta precisa) a su recurso local y puede reutilizar SplashScreen sin rediseñar

Acabo de leer MSDN article aquí, WPF SplashScreen parece bastante pobre, en WinForm podría agregar texto (donde podría mostrar el mensaje de estado y esas cosas).

+0

Porque el splash cambia dependiendo del cliente. Y como SplashScreen se crea en la primera línea de la aplicación(), no tengo acceso a la configuración, así que no puedo saber qué cliente inicia la aplicación ... Parecía agradable instalar un archivo de imagen, diferente para cada cliente y cargue este sobre la marcha. –

0

¿por qué no instalar un conjunto de recursos que contiene la imagen para cada cliente y referencia o cargarlo con Assembly.Load() en tiempo de ejecución?

incluso se puede automatizar la construcción de tal usando resourceassembly Mono.Cecil en una herramienta

-1

Crear una ventana llamada pantalla de bienvenida y hacer que Singleton como:

public partial class Splashscreen:Window 
{ 
static Splashscreen splashscreen; 
    public Splashscreen() 
    { 
     InitializeComponent(); 
    } 

    public static void ShowSplashScreen() 
    { 
     splashscreen = new Splashscreen(); 
     splashscreen.Show(); 
    } 

    public static Splashscreen SplashScreen { get { return splashscreen; } set { splashscreen = value; } } 

hacer todas las personalizaciones que desee en el xaml muestra estado, progreso, imagen, etc.

lee app.config para obtener los detalles del cliente y mostrarlos de acuerdo con el usuario.

llama a splashscreen.showsplashscreen() en la primera línea de tu vacío principal() o en tu appstartup. una vez que la aplicación esté completamente cargada, destruya la pantalla de bienvenida llamando a splashscreen.splashscreen.close() ya sea sincronizando o asincronando.

Cuestiones relacionadas