2010-08-28 5 views
2

Un conseil ou des liens ou un exemple d'application (pour VS2010) sur comment développer une application WPF "sans fenêtre"?Exemple d'application wpf sans fenêtre?

C'est ceux qui ont l'air tout à fait moderne et ne semblent pas avoir le chrome de la fenêtre historique sur les bords - ils semblent avoir des bords arrondis etc ...

+0

moi Avez-vous des applications comme Blu-ray thirteen23? –

+0

@Avatar - oui (juste jeté un coup d'oeil) - c'est le genre de chose que je demande à propos de – Greg

Répondre

2

j'ai écrit un projet qui a fait exactement ce que vous parlons, nous avons utilisé le projet suivant de Microsoft, http://code.msdn.microsoft.com/WPFShell Initialement j'ai essayé de l'écrire moi-même en éteignant le chrome, pas une bonne idée à moins que vous ne voulez pas être en mesure de faire glisser votre fenêtre dans la méthode des fenêtres standard .

+0

merci Josh - semble tout à fait une chose délicate à faire alors non? J'ai l'impression que si vous n'êtes pas vraiment prêt à vous retrousser les manches et à passer du temps dans ce domaine, vous feriez peut-être mieux de ne pas essayer de modifier le chrome standard des fenêtres. Des pensées à ce sujet? – Greg

+0

Avec projet WPFShell Microsofts ce n'est pas difficile du tout, j'ai des exemples si vous en avez besoin. Mais en termes d'écriture complète vous-même (sans WPFShell), oui c'est très détaillé, la partie où j'ai abandonné est capable d'ancrer Windows dans Windows 7, je suppose que vous devez écrire beaucoup d'interop pour faire fonctionner correctement . – JoshVarga

+0

pensez-vous que des projets comme Blu de treteen23 (comme Avatar mentionné) aurait utilisé WPFShell? Ou je suppose que je me demande dans quelle mesure la plupart des gens utilisent le projet WPFShell pour faire ce genre de chose? – Greg

1

Tout supprimer StartupUri et dans la méthode de démarrage d'application DonT charger une fenêtre:

public partial class App

{

public static bool IsTrue ; 

    public App() 
    { 
     Startup += AppStartup; 
    } 


    public void DoWork() 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      Thread.Sleep(1000); 
      Trace.WriteLine("blah"); 
     } 
     IsTrue = false; 

    } 
    void AppStartup(object sender, StartupEventArgs e) 
    { 
     IsTrue = true; 
     new Thread(DoWork).Start(); 
     while (IsTrue) 
     { } 
     Current.Shutdown(); 
    } 
} 

}