내비게이션 중 사용자 제어 깜박임 주소
사용자 컨트롤 사이를 탐색하면 반복적 인 페인팅 및 배경 이미지 사용과 같은 요소로 인해 종종 시각적 깜박임이 발생합니다. 다양한 스타일 조정이 있더라도이 문제는 지속될 수 있습니다
깜박임 문제 이해
깜박임은 렌더링 프로세스에서 비롯됩니다. 각 사용자 컨트롤은 배경 이미지를 페인트하여 어린이 컨트롤이 위치한 일시적인 간격을 만듭니다. 이러한 격차는 어린이가 다시 Repaint를 제어하기 전에 간단히 볼 수 있으며, 배경 이미지와의 대비는 효과를 악화시킵니다.
.
표준 솔루션이 실패한 이유
및 와 같은 일반적인 이중 부러지는 방법은이 특정 상황에서 비효율적입니다.
효과적인 솔루션 : ws_ex_composited
근본 원인은 Windows가 제어 계층 구조 렌더링을 처리하는 방법에 있습니다. 양식의 경우 를 활성화하면 모든 아동 통제를 포함하여 양식 수준에서 이중 부러지는 것이 가능합니다. 이것은 깜박임을 해결합니다.
추가 성능 향상
이러한 추가 최적화는 페인팅 성능을 크게 향상시킬 수 있습니다 :
Bekgr
이미지 크기 조정 :
런타임 스케일링을 피하기 위해 제어 차원과 일치하도록 배경 이미지 사전 배경 이미지.
픽셀 형식 : OptimizedDoubleBuffer
사용을 더 빠른 배경 이미지 렌더링하려면 UserPaint
WS_CLIPCHILDREN :
비활성화 아동 제어가 백그라운드에 페인트 칠을 허용하여 임시 간격을 숨기십시오.
속도 에 대한 아동 통제를 최소화하십시오
아동 컨트롤의 수를 줄이면 페인팅 속도가 크게 높아집니다. 수많은 어린이 컨트롤에 의존하는 대신 사용자 컨트롤의 메소드 내에서 직접 더 간단한 요소 (텍스트 또는 이미지)를 그리는 것을 고려하십시오.
위 내용은 내비게이션 중에 사용자 컨트롤의 깜박임을 어떻게 제거 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!