Domanda

Sono quasi certo che conosco la risposta a questa domanda, ma spero che c'è qualcosa che ho trascurato.

Alcune applicazioni sembrano avere la Vista Aero guardare e sentire il loro didascalia barre e pulsanti, anche quando in esecuzione su Windows XP.(Google Chrome e Windows Live Photo Gallery, a mente come esempi). So che un modo per raggiungere questo da WinForms sarebbe quello di creare un form senza bordi e disegnare la barra del titolo/pulsanti di te stesso, allora l'override WndProc assicurarsi di spostare, ridimensionare, e clic del pulsante di fare ciò che si suppone di fare (io non sono chiare sulle specifiche, ma probabilmente potrebbe tirare fuori dato un giorno a leggere la documentazione.) Sono curioso di sapere se esiste un diverso modo più semplice che mi sono affacciato.Forse alcune chiamate di API o gli stili di finestra ho trascurato?

Credo che Google ha risposto per me usando il roll-your-own-finestra approccio con Chrome.Lascio la domanda aperta per un altro giorno nel caso in cui qualcuno ha nuove informazioni, ma credo di aver risposto alla domanda di me.

È stato utile?

Soluzione

Ecco un articolo completo di codice di esempio su come utilizzare il proprio personalizzato "chrome" per un'applicazione:

http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

Questa sembra una roba veramente buona.Ci sono un totale di 3 articoli in serie, e funziona alla grande, e su Vista troppo!

Altri suggerimenti

Google Chrome è non utilizzando la Vista SDK per raggiungere questo su XP.Se sbirciare in src\chrome\browser\views\frame ci sono diversi file per definire il riquadro del browser a seconda delle funzionalità del sistema.Su XP, sembra che OpaqueFrame è utilizzato;linea 19 ha detto:

// OpaqueFrame
//
//  OpaqueFrame is a CustomFrameWindow subclass that in conjunction with
//  OpaqueNonClientView provides the window frame on Windows XP and on Windows
//  Vista when DWM desktop compositing is disabled. The window title and
//  borders are provided with bitmaps.

Sembra che, utilizzando le risorse in src\chrome\app\theme per disegnare il telaio pulsanti.

Così sembra che la mia speranza che ci sia una specie di buon modo per attivare Vista i temi di XP sono tratteggiate.L'unico modo per farlo è quello di disegnare manualmente l'area non client della finestra.Credo qualcosa di simile a questo è probabilmente la strada giusta, perché permette a Windows di gestire il client non roba come lo spostamento e il ridimensionamento della finestra.

A meno che qualcuno può trovare un metodo magicamente ad attivare la Vista per i temi di XP, questa è la risposta alla domanda: ma io, ovviamente, non può segnare mio post come risposta.

Owen, sto usando Chrome su XP e non riesco a vedere "Vista Aero" tema vetro sulla finestra di Chrome.L'ho visto come una tinta blu.

Se è personalizzato per i temi di controlli e windows barre del titolo che si desidera, che può essere realizzato.C'è un ottimo e gratuito di UI toolkit per windows form che fa esattamente questo: KryptonToolkit

@Jonathan Olanda:Questo è qualcosa che può essere fatto da .NET?

Sì, utilizzando DllImport. Qui è un buon blog post

Google Chrome utilizza Windows Vista SDK per ottenere il vetro sguardo su XP.Si può scaricare qui:

http://www.microsoft.com/downloads/details.aspx?FamilyID=4377f86d-c913-4b5c-b87e-ef72e5b4e065&displaylang=en

Usando questo, è necessario abilitato ritardo di caricamento delle seguenti della DLL per ottenere l'Effetto Vetro in XP:

  • uxtheme.dll
  • dwmapi.dl

No, ho paura, non c'è altro modo semplice per fare questo.

Siete sulla strada giusta.Devi creare un custom Winform e poi procedere come illustrato in questo esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top