Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

venerdì 19 gennaio 2007

ShieldLink in C#

Dopo aver mostrato come utilizzare le nuove API di Windows Vista per creare ShieldButton e TextBox con Cue Banner, è la volta dello ShieldLink:

Per creare un controllo di questo tipo è sufficiente inviare il messaggio BS_COMMANDLINK ad un oggetto Button:

public class ShieldLink : Button { private const int BS_COMMANDLINK = 0x0000000E; private const uint BCM_SETNOTE = 0x00001609; private const uint BCM_SETSHIELD = 0x0000160C; [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern IntPtr SendMessage(HandleRef hWnd, UInt32 Msg, IntPtr wParam, string lParam); [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern IntPtr SendMessage(HandleRef hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam); public ShieldLink() { this.FlatStyle = FlatStyle.System; } protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style |= BS_COMMANDLINK; return cp; } } private string _textNote; public string TextNote { get { return _textNote; } set { _textNote = value; SendMessage(new HandleRef(this, this.Handle), BCM_SETNOTE, IntPtr.Zero, value); } } private bool _showShield; public bool ShowShield { get { return _showShield; } set { _showShield = value; SendMessage(new HandleRef(this, this.Handle), BCM_SETSHIELD, IntPtr.Zero, new IntPtr(value ? 1 : 0)); } } }
Come nota personale, trovo molto carino l'effetto di fade out quando si sposta il mouse fouri dal controllo smile_tongue.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (3) | Filed Under [ C# ]

TextBox con Cue Banner

Alcune caselle di testo di Internet Explorer 7 e Windows Vista sono dotate di una caratteristica chiamata Cue Banner: quando non contengono testo e non hanno il focus, esse visualizzano un breve messaggio che funge da suggerimento (un effetto di questo tipo è utilizzato, ad esempio, nella casella di ricerca di IE7 e nella TextBox per la password della schermata di login di Vista).

Su CodeProject è disponibile uno UserControl che consente di aggiungere questo effetto all'interno delle proprie applicazioni:

Il codice sorgente, disponibile qui, è scritto in C#, ma all'interno del file scaricato è possibile trovare anche la DLL compilata del controllo, che quindi può essere direttamente utilizzata pure all'interno di progetti VB .NET.

Il controllo di questione utilizza solo codice managed. L'API di Windows fornisce anche una modo per impostare questo stile utilizzando la funzione SendMessage:

private const uint ECM_FIRST = 0x1500; private const uint EM_SETCUEBANNER = ECM_FIRST + 1; [DllImport("user32", CharSet = CharSet.Unicode)] private static extern bool SendMessage(IntPtr hWnd, UInt32 message, IntPtr wParam, string lParam); //Esempio... SendMessage(textBox1.Handle, EM_SETCUEBANNER, IntPtr.Zero, "Password");

Il messaggio EM_SETCUEBANNER è supportato anche da Windows XP.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (2) | Filed Under [ C# VB .NET ]

Design guidelines for Windows Vista

A partire da questa pagina è possibile trovare tutte le linee guida ufficiali di Microsoft per la progettazione di interfacce grafiche secondo i nuovi standard introdotti da Windows Vista.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (1) | Filed Under [ C# VB .NET Windows Related .NET 3.0 ]

Gmail Notifier è tornato a funzionare

Come pensavo, pochi minuti fa Gmail Notifier ha ripreso magicamente a funzionare (ho parlato del problema in questo post), senza che io abbia fatto nulla... La cosa strana è che tale problema è noto da tempo, eppure l'ultima versione del programma è del 2004... Possibile che un colosso come Google in due anni non abbia trovato il tempo di risolvere il bug di un software di 468 KB? smile_omg

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ Tutto & Oltre :-) ]

Creare Ribbon per Office 2007

Su MSDN Magazine di Febbraio è stato pubblicato un articolo, dal titolo Extend The 2007 Office System With Your Own Ribbon Tabs And Controls, che spiega come creare Ribbon per Office 2007. E' disponibile anche il download di un esempio realizzato in C#. Per leggere l'articolo, clic qui.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (4) |

Paint.NET 3.0 RC1

Oggi è una giornata ricca di novità. Dopo Nero 7.7.5.1 è stata rilasciata la Release Candidate 1 di Paint.NET 3.0:

  • New: New default color palette (you may have to use "Reset to default palette" to see it)
  • Finished: Help file is now up-to-date for 3.0.
  • Finished: UI translations for Chinese (Simplified), French, German, Japanese, Korean, Portugese, and Spanish. Note: Help file is still English-only.
  • Fixed: Status bar was not displaying help text for tools on first click
  • Fixed: "Rotate Image" was hanging
  • Fixed: Crash in installer when /createMsi was used
  • Fixed: "ScratchSurface already borrowed..." crash fixed in several places
  • Fixed: Spacebar was not activating command link buttons
  • Fixed: Zoom dropdown was not always working when set to "100%" in some specific cases

Sulla pagina contenente la roadmap del programma si legge che la versione definitiva è prevista per il 1° Febbraio.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ Tutto & Oltre :-) ]

Windows Vista e Nero 7.7.5.1

Dopo vari tentativi sono riuscito a portare a termine il download della nuova versione di Nero. Poiché Nero ProductSetup continuava a segnalare problemi con il download degli aggiornamenti, sono stato costretto a scaricare il pacchetto completo da 197 MB, cancellare la versione precedente e installare quella nuova.

Come era lecito aspettarsi, non ci sono cambiamenti evidenti nei vari programmi della suite. Però adesso Nero Burning Rom supporta correttamente la virtualizzazione dei file e il Browser del file system include un pulsante per visualizzare le icone nei vari formati previsti da Windows Vista (molto grandi, grandi, medie, piccole...)-

Ma soprattutto, la prima cosa che ho verificato è stata che Nero 7.7.5.1 ha risolto il problema con il COM Surrogate. Ora nessun errore appare quando si visualizza una cartella che contiene file codificati in formato DivX oppure XviD.

A conclusione di questa breve rassegna, anche se l'ho provato solo per una mezz'oretta, mi sembra che la nuova versione di Nero sia finalmente compatibile al 100% con Windows Vista. Magari nei prossimi giorni scoprirò ancora qualche piccolo problema, nel qual caso vi farò sapere tempestivamente smile_wink.

Technorati tags: ,

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (24) | Filed Under [ Windows Related ]

Problemi con Gmail Notifier

Da circa un mese sto usando il programma Gmail Notifier, un piccolo software che rimane in esecuzione nella tray bar e ogni 2 minuti verifica la presenza di nuovi messaggi sul proprio account di Google Mail. Quando questa mattina ho acceso il PC, il programma mi ha segnalato l'errore Cannot read your messages (bad data; 6). Pensavo che fosse un problema con l'account di Google, ma l'accesso via web funzionava correttamente. Ho quindi fatto una ricerca (ovviamente con Google smile_teeth) ed ho scoperto che questo problema è condiviso da molti utenti. A niente è servito seguire i suggerimenti trovati su vari forum, che consigliano di eliminare i cookie e i file temporanei di Internet Explorer... Alcuni hanno notato che il problema si è "magicamente" risolto da solo dopo qualche ora, staremo a vedere...

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (8) | Filed Under [ Tutto & Oltre :-) ]

Comprimere e decomprimere file con il .NET Compact Framework

La versione 2.0 del .NET Framework contiene il namespace System.IO.Compression, il quale fornisce una serie di oggetti per gestire la compressione/decompressione in formato ZIP. Queste classi, tuttavia, non sono incluse del .NET Compact Framework. In questo caso, per utilizzare file compressi è necessario fare ricorso a librerie di terze parti, come SharpZipLib, scritta completamente in C# e rilasciata con i codici sorgenti. Questa libreria, inoltre, funziona anche con la versione Full del .NET Framework.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (4) | Filed Under [ .NET Compact Framework ]

Powered by:
Powered By Subtext Powered By ASP.NET