나는 내 창문 어딘가에 앉아있다. 이 Window의 루트에는 MainGrid라는 그리드가있다. 윈도우의 크기가 커지면 내 윈도우의 모든 내용을 확대하는데 사용하는 MainGrid의 LayoutTransform에 ScaleTransform
이 적용되었습니다. 그러나 내 컨트롤 중 하나는 캔버스에 BitmapCache
을 사용하여 드로잉 성능을 최적화합니다. BitmapCache는 컨트롤에 적용될 수있는 ScaleTransform
을 고려하지 않으므로 확대하면 컨트롤이 흐리게 표시됩니다.컨트롤 또는 UIElement에 적용된 ScaleTransform을 찾으십니까?
BitmapCache에는 캐시 된 이미지의 크기를 늘리는 데 사용할 수있는 RenderAtScale 속성이 있습니다. 그러나, 내가 가진 문제는 스케일 값이 무엇인지 알아내는 우아한 방법을 모른다는 것입니다. 지금은 컨트롤에 속성이있어서 내 윈도우가 컨트롤에 해당 값을 전달할 수 있습니다. 그러나 스케일 값을 전달하는 외부 소스에 의존 할 필요가 없다면 좋겠다.
Control에 적용되는 모든 ScaleTransforms의 요약을 가져올 수있는 방법이 있습니까?
입니까? 그렇다면, 필자가 제안한 것과 똑같은 모든 컨트롤에 도우미 메서드를 추가 할 수 있습니다. 시각적 트리를 반복적으로 실행하여 적용해야하는 ScaleTransforms의 합계를 얻습니다. – JacobJ
부모의 ScaleTransorms 변경 사항을 재귀 적으로 등록 할 수도 있습니다. 같은 도우미 클래스. –