2009-03-04 3 views
2

저는 ToolStripControlHostNumericUpDown을 호스팅하고 NumericUpDown의 속성을 노출합니다. 기능적으로는 괜찮습니다. 그러나 ToolStrip에 놓이면 다른 ToolStripItem과 시각적으로 맞지 않습니다.기존 ToolStripRenderer를 사용하여 호스팅 된 NumericUpDown을 어떻게 페인팅합니까?

ToolStrip의 기존 ToolStripRenderer을 사용하여 컨트롤에있는 ToolStripComboBox과 비슷한 방식으로 컨트롤을 그립니다. 나는 사용자 정의 ToolStripRenderer을 만드는 것에 관심이 없다. 컨트롤을 사용하는 다른 사람들이 그들이 선택한 렌더러와 함께 사용할 수 있기를 원하기 때문이다.

호스트 컨트롤 클래스와 호스트 컨트롤 클래스 및 렌더러의 드로잉 메서드를 사용하여 OnPaintOnPaintBackground을 재정의하려고 시도했지만 가장자리에서 도색되지 않은 영역을 얻을 수 있습니다. 스핀 단추는 여전히 시스템 테마로 그려져 있습니다.

기존 ToolStripRenderer을 사용하여 호스트 된 NumericUpDown을 어떻게 페인팅합니까?

답변

0

NumericUpDown 클래스는 실제로 GDI의 일부로 존재하는 공용 컨트롤 클래스 주위의 래퍼입니다. 기본 공통 컨트롤은 비주얼 스타일이 응용 프로그램에 대해 활성화되어 있는지 여부에 따라 두 가지 방법 중 하나로 자체를 그립니다. 그림을 덮어 쓰려면 모든 그림을 직접 수행해야합니다. 단추 또는 테두리를 재정의하려는 컨트롤을 말할 수 없습니다.

모든 그림을 직접 연주하는 것이 소리보다 훨씬 어렵습니다. 미안하지만 쉬운 솔루션을 제공 할 수는 없지만 쉬운 해결책이 있다고 생각하지 않습니다.

+0

모든 그림을 직접 만들고 싶지만 ToolStripRenderer의 방법을 사용하여 만들고 싶습니다. – Simon