문제

Visual Studio 2008의 간단한 드롭 다운에서 이미지 스트립의 색상을 어떻게 변경할 수 있는지 아는 사람이 있습니까? 현재 드롭 다운 메뉴가있는 내 자신의 항목이 있으며, 드롭 다운 메뉴의 각각 옆에는 이미지 스트립이 있으며, 이는 명심 적으로 회색으로 어두운 그라디언트가 있습니다. 이 색상이 변경 될 수 있는지 또는 완전히 제거 할 수 있는지 알아 내기를 간절히 원하십니까? 미리 감사드립니다.

도움이 되었습니까?

해결책

WPF에 대해 모르는 것처럼 Winforms에 대해 묻는다고 가정 할 것입니다.

이미지 스트립을 숨기고 싶다면 ShowImageMargin 그리고 ShowCheckMargin False의 속성. 그러나 메뉴 항목에 대한 이미지를 표시 할 수 없습니다.

적어도 XP에서 RenderMode 드롭 다운의 속성 ToolStripRenderMode.System 이미지 마진 장식이없는 메뉴를 제공합니다. 응용 프로그램의 시각적 스타일과 일치하지는 않지만.

당신이 a를 설정하면 BackColor 각 메뉴 항목에 대해 이미지 마진이 가려집니다.

드롭 다운의 시각적 스타일을 변경하지 않고 이미지 마진을 숨기려면 비어있는 렌더러를 만들어야합니다. OnRenderImageMargin 기능 :

class MyRenderer : ToolStripProfessionalRenderer
{
    protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
    {
        // do nothing
    }
}

그런 다음 드롭 다운을 설정하십시오 Renderer 새로운 렌더러 클래스의 인스턴스에 대한 속성. 렌더러를 수정하여 비슷한 방식으로 이미지 마진의 색상을 변경할 수 있습니다. ColorTable.

그러나 그 중 하나를하기 전에 스스로에게 물어보십시오.

  • 인터페이스를 덜 친숙한 것으로 변경하는 유용성 이점이 있습니까?
  • 있는 경우,이 혜택이 코드를 단순하게 유지하는 이점보다 큰 이점이있어 사용자 피드백에 신속하게 응답 할 수 있습니까?

첫 번째 질문에 대한 답은 일반적으로 '아니요'입니다.

다른 팁

ToolStriprenderer의 서브 클래스를 만들고 적절한 렌더링 방법을 무시 하여이 동작을 실현할 수 있습니다. 예제는 MSDN을 참조하십시오.

WinForms 솔루션을 찾고 있다고 가정합니다. WPF/XAML의 경우 솔루션은 물론 완전히 다르며 제어 템플릿을 변경하여 달성 할 수 있습니다.

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