2013-10-14 1 views
4

나는이처럼 표시, 메뉴가 있습니다배경 색상을 기반으로 텍스트 색상을 변경하는 쉬운 방법이 있습니까? 사용자가 색상을 선택할 수있게된다

Plot Colours

나는 검은 색의 색상 코드를 쓰기 때문에, 어두운 파란색 배경 어려운 읽을 수 있습니다과 검은 색입니다 명백하게 완전히 숨겨졌다. 첫째, 이것은 특별히 중요하지 않습니다. 색상은 사용자가 관심있는 색상입니다.

흰색 배경에 별도의 상자에 색상 코드를 넣을 수 있지만 관심이 있다면 표준 코드가 있는지 궁금해졌습니다. 텍스트를 항상 읽을 수 있도록하기 위해 적용될 수있는이 방법이나 쉬운 방법을 처리 할 수 ​​있습니까? 누군가가 어떤 도움으로 자원을 가르쳐 주면 감사하겠습니다.

+3

배경색의 모든 비트를 반전시킬 수 있습니다. 많은 색상에 아주 잘 작동합니다. 그러나 자홍색 (# fffff)과 같은 밝은 녹색 (# 00ff00)을 얻으면 설계 팀의 자살률이 높아집니다. –

+1

@ thorstenmüller로 시도해보십시오. # 808080 –

+1

고마워요.그것은 특히 간단하지 않은 것처럼 보입니다. – Family

답변

7

빛이 어두운 경우 색상을 검정색으로 선택하면됩니다. 많은 응용 프로그램이 그렇게하지만, .net 라이브러리에 표준 구현이 있다고 생각하지 않습니다. 사람들은 밝게 보이기 때문에 당신은 순수한 파란색에 흰색 사용할

Color ForegroundForBackground(Color bg) { 
    if(bg.R*2 + bg.G*7 + bg.B < 500) 
     return Color.White; 
    else 
     return Color.Black; 
} 

,하지만 순수 그렌과 순수한 빨간색 :

같은 것을보십시오. 합리적인 것처럼 보이게 번호를 조정하십시오.

편집 : j.k. 친절하게도 Luminance (colorimetry)에 대한 링크를 제공 했으므로 선형 조합을 더 잘 일치하도록 변경했습니다 (숫자를 반올림하여 실제로는 더 필요하지 않음). 녹색에 대한 계수가 테스트에서 너무 커질 수도 있습니다.

+0

+1 내 자신을 퍼지보다 http://en.wikipedia.org/wiki/Luminance_%28colorimetry%29와 같은 요인을 조정할 수는 있지만 본질적으로 어떻게 할 것인가? –

1

예, 색상을 동적으로 조정할 수 있어야합니다.

귀하의 질문에 두 부분이 있습니다. 첫 번째는 색상을 변경하고 두 번째는 색상을 변경해야 할 대상을 결정합니다.

첫 번째는 더 복잡한 두 번째 것입니다.

  1. 기존 컨트롤에서 상속하여 자신의 컨트롤을 만들고 대조 전경색을 반환하기 위해 배경을 확인하기 위해 적절한 기능을 오버라이드 (override) : 나는 두 가지 기본 옵션을 참조하십시오.

  2. 컨버터에서 반환 할 전경색을 value converterbind으로 만듭니다.

이러한 두 가지 옵션 중에서 값 변환기를 사용하면 컨트롤간에 가장 큰 이식성을 얻을 수 있습니다. 그러나 사용중인 UI 기술로는 작동하지 않을 수도 있습니다.

사용할 색상을 결정하는 두 번째 단계는 조금 더 간단합니다. Thisthis은 색상을 뒤집거나 반전시키는 두 가지 질문입니다. 포화 상태를 기반으로하는 몇 가지 엣지 케이스가 예상대로 작동하지 않을 수 있습니다. 또는 배경색이 제한되어 있으면 조회 테이블을 사용하여 원하는 결과를 얻을 수 있습니다.

+0

두 번째를 말할 것입니다. 인간의 지각은 까다 롭습니다. –

관련 문제