커스텀 컨트롤의 이중 버퍼 어린이 컨트롤 (C#)
-
05-07-2019 - |
문제
버튼이 포함 된 사용자 정의 컨트롤을 버퍼링하고 싶습니다. 컨트롤을 이중 버퍼하는 다양한 방법을 시도했습니다. SetStyle, BufferedGraphicsContext 및 비트 맵으로 그리기. 이것들은 모두 컨트롤의 사용자 정의 도면에 적합하지만 버튼을 뒤로 버퍼로 끌어 당기는 것은 없습니다. 이것을 어떻게 달성합니까?
해결책
기술적으로 당신은 할 수 없으며, 표준 .net winforms 버튼이 있을지는 안됩니다.
버튼 자체는 보호 된 이중 청원 속성을 통해이를 제어합니다. 이에 액세스하는 유일한 방법은 SWFBUTTON에서 새로운 클래스를 도출하고 해당 클래스의 인스턴스에서 더블 버퍼 된 속성을 활성화하기 위해 코드를 구현하는 것입니다 (아마도 생성자에서 그렇게 할 것입니다). 마지막으로, SWFBUTTONS 대신 양식에 새 클래스의 개체를 사용하십시오.
그러나 내가 기억 하듯이, 버튼은 순전히 Winapi에서 그려집니다. 그들은 gdi+가 아닙니다. 결과적으로, 당신은해서는 안됩니다 필요 그들의 그림을 두 배로 버터에 넣습니다. 즉, 귀하의 사용 시나리오를 모르고 앱이 표시되는 증상을 모르기 때문에 잘못 될 수 있습니다. :)
책을 확인하는 것을 고려할 수 있습니다 C#의 Pro .NET 2.0 Windows 양식 및 사용자 정의 컨트롤. 이 모든 것이 그 책의 정보에서 요약되었습니다.
제휴하지 않습니다 StackOverflow