Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Finestre Aero e controlli sulla caption vb.net
Forum - C# / VB.NET - Finestre Aero e controlli sulla caption vb.net

Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 17:24
Martedì, 12/06/2012
Sto realizzando un'applicazione con visual studio 2010 e uso questo tutorial per poter mettere i controlli sulla caption:
http://www.codeproject.com/Articles/44235/Painting-Vista-s ...
Fin qui funziona tutto, pero' avrei bisogno di utilizzare anche la funzione Aero per aumentare l'altezza della caption, solo che l'unico metodo che funziona anche su windows 8 tra tutti quelli che ho testato e' questo:
http://gabriele97.wordpress.com/creare-una-finestra-aero-i ...
Non riesco ad utilizzarli entrambi, penso perche' la prima funzione (Quella per i controlli sulla caption) disegni un rettangolo grigio sulla parte interna della finestra nascondendo la funzione Aero. Qualche idea?


Continuerò a correre, perché ci sarà sempre qualcuno pronto a superarmi...
PM Quote
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 22:18
Martedì, 12/06/2012
Intanto se pensi di utilizzare WinForms ti dico dimenticatelo.
Quindi parlando di WPF, è facilissimo.

Ti serve Microsoft.Windows.Shell.
Puoi ottenerla qui (http://www.microsoft.com/en-us/download/details.aspx?id=11 ..., o installando Ribbon WPF o scaricando i sorgendi e compilando solo quella.

Nel progetto WPF aggiungi un riferimento alla libreria.

Poi nella Window interessata

Codice sorgente - presumibilmente Plain Text

  1. <Window x:Class="MainWindow"
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:Shell="clr-namespace:Microsoft.Windows.Shell;assembly=Microsoft.Windows.Shell"
  5.         Title="MainWindow"
  6.         Background="{x:Null}">
  7.  
  8.     <Shell:WindowChrome.WindowChrome>
  9.         <Shell:WindowChrome CaptionHeight="29"
  10.                             CornerRadius="6"
  11.                             GlassFrameThickness="8 31 8 8"
  12.                             ResizeBorderThickness="8" />
  13.     </Shell:WindowChrome.WindowChrome>
  14.  
  15.     <Grid />
  16. </Window>



comunque se ti interessasse anche per l'effetto glass dimenticatelo, perchè in W8 Aero verrà tolto.
Infatti noterai che già è inutile intervenire sul raggio degli angoli (CornerRadius="6"), perchè gli effetti arrotondati non ci sono già più.

I valori che ho messo ti creano una Window normale, con la differenza che puoi posizionare controlli anche sul chrome della finestra (il contorno, i bordi).

Ultima modifica effettuata da Dedalux il 12/06/2012 alle 22:24


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 0:22
Mercoledì, 13/06/2012
Ti ringrazio per la risposta, ma preferisco continuare con WinForms perche' Windows Presentation Foundation mi disorienta molto...
Comunque a me l'effetto glass serve solo per aumentare l'altezza della dell bordo superiore della finestra e finche' si puo' fare lo usero'... Il risultato che vorrei ottenere e' simile a quello di google chrome (le tab posizionate sulla finestra con effetto glass)
Quindi grazie mille per il suggerimento, ma il problema non e' risolto.
Confido in altre risposte :)


Continuerò a correre, perché ci sarà sempre qualcuno pronto a superarmi...
PM Quote