Domanda

Avete presente quei pulsanti Color Picker con un piccolo rettangolo in esso, la visualizzazione del colore selezionato? Come in MS prodotti Office.

Vorrei implementare uno utilizzando C # / .NET. Così ho una piccola icona bella con un rettangolo rosso magenta di colore (che è quello di visualizzare il colore) e uno sfondo trasparente.

Mi vengono in mente due modi come questo potrebbe essere fatto, ma sono entrambi non molto elegante:

  • Modifica l'icona usando software di grafica per avere un colore di sfondo solido al posto di trasparenza e di ridimensionarla di essere esattamente grande come il pulsante che lo contiene. Ciò consentirebbe di utilizzare TransparentColor = Manenta in combinazione con il pulsante Sfondo, tuttavia l'icona dovrebbe essere modificato ogni volta che taglia pulsante, BackColor della barra degli strumenti o qualcos'altro modifiche.
  • Modifica l'icona a livello di codice ogni volta che si seleziona un nuovo colore. Avrebbe funzionato, ma sembra un po 'per complessi (per quanto riguarda lo sviluppo e le prestazioni) a me.

. Forse mi manca il modo semplice e ovvio per attuare tale tasto? Grazie in anticipo per eventuali suggerimenti / suggerimenti / ispirazione:)

È stato utile?

Soluzione 2

Ovviamente, non v'è alcuna soluzione elegante. Ho scelto il primo, utilizzando PNG trasparenza e BackColor, con l'inconveniente di dover colorare lo sfondo png come sfondo del pannello contenente. Sembra essere meno doloroso in questo modo.

Altri suggerimenti

Si può facilmente sostituire il metodo OnPaint e disegnare un rettangolo con qualsiasi colore desiderato.

Non vedo alcuna ragione per usare un'icona, PNG o qualsiasi altra risorsa immagine per questo. Che sembra uno spreco di risorse.

Basta disegnare le scatole dal codice, disegno i colori che sono attualmente parte della lista dei colori del controllo. Idealmente, il vostro controllo permetterà al chiamante di aggiungere i propri colori. E non richiederebbe alcuna trafficando con le immagini.

Ho appena usato un casella combinata quando ho fatto questo , ma ho disegnato una scatola di colore come io sto descrivendo owner-draw. Molto facile.

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