는 방법을 렌더링을 제어하는 모습처럼 콤보 비주얼 스타일을 사용하나요?

StackOverflow https://stackoverflow.com/questions/2874

  •  08-06-2019
  •  | 
  •  

문제

나는 컨트롤 모델 ComboBox.내가 원하는 렌더링을 제어하는 제어 테두리 처럼 보이는 표준 Windows ComboBox.특히 저는 다음에 MSDN 문서 및 모든 렌더링을 제어의 정확를 제외한 렌더링을 제어를 하는 경우 사용할 수 없습니다.

그걸 분명히 하기 위해서,이 시스템 Visual 스타일 사용됩니다.또한,모든 부품의 제어를 제대로 렌더링을 제외하고 주위의 테두리 사용 제어,일치하지 않는 장애인 ComboBox 경 색상입니다.

내가 사용하는 VisualStyleRenderer 클래스입니다.MSDN 제안을 사용하여 VisualStyleElement.TextBox 요소에 대한 TextBoxComboBox 컨트롤러한 표준화 TextBox 고 표준화 ComboBox 그리는 약간 다르게(하나는 밝은 회색 테두리가 다른 파란 국경).

를 얻을 수 있는 방법이 올바른의 렌더링을 제어 사용할 수 없는 상태?

올바른 솔루션이 없습니다

다른 팁

나는 100%확실하지 않으면 이것은 당신을 위해 무엇을 찾고 하지만 당신은 확인 VisualStyleRenderer 에서 시스템입니다.Windows.Forms.VisualStyles-네임스페이스가 있습니다.

  1. VisualStyleRenderer 클래스 (MSDN)
  2. 방법:렌더링하는 시각적인 스타일 요소 (MSDN)
  3. VisualStyleElement.킬 수 있습니다.DropDownButton.장애인 (MSDN)

이후 VisualStyleRenderer 작동하지 않을 경우에는 사용하지 않는 비주얼 스타일을 사용하도록 설정(그/그녀가 실행 될 수 있습니다'고전 모드'또는 작동하기 전에 시스템을 Windows XP)에 당신은 항상 있어야 대체하 ControlPaint 클래스입니다.

// Create the renderer.
if (VisualStyleInformation.IsSupportedByOS 
    && VisualStyleInformation.IsEnabledByUser) 
{
    renderer = new VisualStyleRenderer(
        VisualStyleElement.ComboBox.DropDownButton.Disabled);
}

고 다음을 수행할 때 이와 같은 그림:

if(renderer != null)
{
    // Use visual style renderer.
}
else
{
    // Use ControlPaint renderer.
}

Hope it helps!

은 모든 ControlPaint 방법이 유용한가요?내가 무슨 일반적으로 사용한 사용자 정의 렌더링을 제어합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top