2009-05-18 2 views
1

Für unsere winforms-Anwendung wurden wir gebeten, ungültige Zellen in einer DataGridView in einer roten Farbe einzufärben. Wir müssen eine rote Farbe finden, die dem aktuellen visuellen Stil entspricht, aber immer noch unterscheidbar ist, wenn der Benutzer eine Palette mit überwiegend roten Farben gewählt hat. Wie erstelle ich eine Farbe, die dem aktuellen visuellen Stil entspricht? Wie stelle ich sicher, dass ich Zusammenstöße vermeiden kann?Wie erstelle ich eine Farbe, die dem aktuellen visuellen Stil entspricht?

Antwort

1

Ich denke, dass Sie dies in die falsche Richtung schauen. Rot wird oft aus verschiedenen Gründen gewählt. Es wird (in der westlichen Kultur unter anderen) häufig verwendet, um darzustellen, dass etwas falsch oder gefährlich ist. Aber Rot ist auch eine Farbe, die normalerweise auffällt. Wenn Sie jedoch versuchen, die Aufmerksamkeit eines Benutzers auf etwas auf der Seite zu lenken, gibt es zwei unfehlbare Methoden.

1) animierte GIF-Dateien oder Videos (ärgerlich, da f ***) oder

2) Clashing Farben

Regel rot steht, aber in Ihrer Situation, wo ein Benutzer einen roten themed Stil haben kann, Ihre beste Wette ist, mit einer Farbe zu gehen, die zusammenstößt. Es ist möglich, widersprüchliche Farben zu haben, die zusammenpassen (wenn das sinnvoll ist).

Hier sind ein paar Websites, die ich in der Vergangenheit verwendet haben, mir zu helfen Farbschemata, die Ihnen auch helfen können:

Sie die Antwort Dies kann nicht gewesen

Kuler, Color Combos und Color scheme designer

suchten, aber ich hoffe es hilft

1

Die Frage ist ein bisschen zweideutig und ein wenig subjektiv; es ist viel einfacher, direkt Beispiele zu kommentieren. Es gibt jedoch eine multitude of on-line tools, mit der Sie Farbpaletten für Websites erstellen können. Diese können hilfreich sein, um zu ermitteln, wie eine bestimmte Rot-Farbe mit verschiedenen anderen Farben interagiert.

Hoffe, das hilft.

0

werfen Sie einen Blick auf das Krypton Toolkit (http://www.componentfactory.com). Sie bieten ein kostenloses Toolkit für WinForms-Steuerelemente mit einem Theme-Manager. Dieser Theme-Manager bietet einsatzbereite Methoden zum Extrahieren der aktuellen Farbwerte.

Ich habe nichts mit ihnen zu tun. Ich benutze es für mein eigenes Produkt (Royal TS bei http://www.code4ward.net) und fand es wirklich nützlich.

Wenn Sie schöne UI erstellen möchten, sollten Sie sich die Krypton-Kram ansehen.

3

Ich glaube nicht, dass das ursprüngliche Poster eine Palette von Farben (Farben) erstellen will, stattdessen versucht er, eine ungültige Zelle hervorzuheben. Die ausgewählte Hervorhebungsfarbe ist rot, aber er ist besorgt, dass Rot möglicherweise nicht herausragt, wenn der Benutzer eine rote Palette gewählt hat.

Wie geht das: Wenn Sie eine ungültige Zelle malen, verwenden Sie SystemColors.Window für den Text und SystemColors.WindowText für den Hintergrund. (oder was auch immer es für ein DataGridView gibt). Auf diese Weise wird sichergestellt, dass die ungültige Zelle die entgegengesetzten Farben einer normalen Zelle hat.

+0

So würde ich es gerne machen - mit Farben aus der SystemColor-Klasse - aber der Kunde hat nach Rot gefragt. – Simon

1

Sie könnten vielleicht versuchen, die Light und Dark Methoden der ControlPaint Klasse zu verwenden? Ich mache etwas ähnliches, obwohl es in die entgegengesetzte Richtung geht. Ich musste einige Reihen in einem Raster hervorheben, aber nicht so viel wie die ausgewählten Reihen.Also habe ich eine Farbe, die ein bisschen leichter als die Standardauswahl Farbe wie das war:

 checkedColor = ControlPaint.Light(grid.DefaultCellStyle.SelectionBackColor, 1.65f); 

könnte versuchen, das zu verwenden, vielleicht mit einigen zusätzlichen Logik, und es auf einigen Systemfarbe stützen, die abheben gemacht . Zum Beispiel System.Drawing.SystemColors.HighLight oder System.Drawing.SystemColors.HotTrack.