내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-10 04:19

제목

[WPF] WPF 성능 최대화


WPF 성능 최대화

 


 속성

권장사항

 Brush

아래는 WPF에서 사용하는 Brush객체  속도가 가장 빠른 것에서 가장 느린 순서로 나열 되어 있습니다

사용 용도에 맞게 Brush 선택하여 사용하시면 보다 나은 성능을 발휘   있습니다

SolidColorBrush -> LinearGradientBrush  -> ImageBrush -> DrawingBrush(
캐시됨) ->
VisualBrush(
캐시됨) -> RadialGradientBrush -> DrawingBrush(캐시되지 않음) -> VisualBrush(캐시되지 않음)

 ClipToBounds

Viewport 또는 Grid  영역에 맞게 명시적으로 자를 필요가 없는 상황이라면

ClipBounds 속성을 False 설정하는 것이 좋습니다. WPF에서는 자체적으로 안티얼라이싱을 수행하며

이를 자르기 위해서는 매우 속도가 느립니다. ClipToBounds 기본적으로 활성화 되어 있기 때문에,

명시적으로 자를 필요가 없는 상황이라면 ClipBounds속성을 False 설정하는 것이 좋습니다.

 IsHitTestVisible

마우스 적중 테스트를 수행할  고려할 필요가 없는 객체는 항상 IsHitTestVisible 속성을 False 설정하는 것이 좋습니다.

 Opacity

Brush 사용하여 요소의 Fill 또는 Stroke 설정하는 경우 객체 자체의 Opacity 속성을 설정하는 것보다

Brush Opacity 값을 설정하는 것이  좋습니다

객체의 Opacity 속성을 수정하면 WPF에서 임시 화면을 만들기 때문에 속도가 느립니다.

 ScrollBarVisibility

가능하면 HorizontalScrollBarVisibility  VerticalScrollBarVisibility 속성을 Auto 설정 하지 않는 것이 좋습니다.

이러한 속성은 RichTextBox, ScrollViewer  TextBox 개체에 대해 정의되고 ListBox 개체의 연결 속성으로 정의됩니다. |데이터가 추가되거나 삭제될때 마다 ScrollBar 대한 연산이 필요하므로 가능하면 Disabled, Hidden 또는 Visible 명시적으로 설정하는것이 좋습니다.

 BitmapEffect

 BitmapEffect 영향을 받는 모든 내용이 하드웨어 가속 없이 렌더링됩니다최상의 성능을 위해서는

BitmapEffect 사용하지 않는 것이 좋습니다.

 


출처1

출처2