2009-09-27 10 views
6

Używam Expression Blend 3 i ręczne zapisywanie niektórych XAML, w szczególności wartości kolorów kontrolek.Dlaczego wiodący "#FF" w szesnastkowych wartościach kolorów?

Mam listę kolorów RGB już przekonwertowane na szesnastkowy. Po prostu muszę wstawić wartość szesnastkową do mojego XAML.

Początkowo wkleiłem wartość heksadecymalną z wiadomości e-mail do odpowiednich właściwości. Zanim zdążyłem dokończyć, Blend zaczął mieć odpowiedni krój, podkreślając właściwość koloru za pomocą skrętu i podpowiedzi wskazującej, że "Token nie jest ważny". Po pewnych badaniach znalazłem umieszczenie znaku funta ("#") przed wartością heksadecymalną rozwiązanego tego problemu.

W trakcie badania tego problemu zacząłem zmieniać kolory za pomocą próbnika kolorów w Blend. Szybko odkryłem, że wartości, które wstawiał Blend, zaczęły się nie tylko od znaku funta, ale także od "FF". Wartości, które wklejałem, były poprawnymi kolorami w prawidłowym formacie szesnastkowym. Ale wprowadzając wartości RGB do Blend i pozwalając, aby Blend wstawił wartość heksadecymalną, zauważyłem, że wszystkie mykolory zostały poprzedzone prefiksem "#FF". Usunięcie znaku #, jak już wspomniałem, spowodowało błędy, ale usunięcie "FF" zostało zszywane, by nie mieć żadnego efektu.

W świecie kolorów heksadecymalnych, czy kolor # 5A7F39 jest taki sam jak # FF5A7F39? Dlaczego FF? Są to dwie różne wartości heksadecymalne, prawda? Ale wyglądają identycznie na ekranie. Dlaczego różnica?

Odpowiedz

15

Może to być składnik alfa koloru, który reprezentuje krycie (00 -> przezroczysty, FF -> nieprzezroczysty).

MSDN wydaje się zgodzić z tym: http://msdn.microsoft.com/en-us/library/bb980062(VS.95).aspx

16-bitowy szesnastkowy, alfa - #AARRGGBB

+1

Jestem nieco zdezorientowany tym, że zgodnie z artykułem 1 cyfra szesnastkowa reprezentuje 8 bitów, a 2 cyfry szesnastkowe reprezentują 16 bitów. – snarf

2

wierzę wiodącym FF jest Alfą. 255 (lub FF) jest w 100% nieprzezroczyste, a 00 będzie przezroczyste.

0

"Dodatkowy" ff to wartość alfa (stopień przezroczystości). Jeśli masz tylko 3 pary szesnastkowe, przyjmuje się, że wartość alfa to ff (brak przejrzystości). Jednakże, jeśli porównasz # 335A7F39 i # FF5A7F39, powinieneś zobaczyć różnicę:

Powiązane problemy