너비와 높이를 갖는 방법은 ScaleTransform과 높이와 너비를 설정하여 ScaleTransform을 반영하는 방법은 무엇입니까?
-
05-07-2019 - |
문제
실버 라이트의 캔버스에서 ScaleTransform을 사용하는 것과 관련하여 문제가 있습니다. 캔버스는 올바르게 비늘 지지만 높이와 너비 값은 항상 동일하게 유지됩니다.
예를 들어, 100x100 캔버스는 스케일링되어 높이와 너비 값과 관련하여 200x200이 여전히 100x100 인 것으로 보이므로 새로운 크기를 반영하도록 어떻게 업데이트 될 수 있는지.
또 다른 관련 문제는 요소의 높이와 너비를 변경 하고이 스케일을 캔버스 또는 XAML 요소를 적절하게 수행하는 방법입니다. 100x100 요소를 200x200으로 설정하면 모든 것이 두 배나 커집니다. 요소의 높이와 너비 만 스케일을 변경하도록 설정된 솔루션이어야합니다.
이러한 질문은 동일한 문제와 관련이 있습니다. Silverlight 3.0에서 작동하는 해결책이 있기를 바랍니다.
이 캔버스가 스크롤 비어에있을 때 스크롤 바가 새 크기에 대해 올바르게 업데이트되도록 높이와 너비를 업데이트해야합니다. 이는 높이와 너비가 새 스케일 크기에 수동으로 할당되지만 모든 크기에 대해 작동해야합니다.
반대로 높이와 너비가 변경되면 내부의 요소가 적절하게 조정되므로 동일하거나 다른 캔버스에서 사용할 수있는 방지 아이콘이 될 것이라는 또 다른 캔버스가 필요합니다.
Silverlight에서 직접 불가능한 경우 XAML에서는이 효과를 달성 할 수있는 경우, XAML에서는이 효과를 달성 할 수 있습니다. 이미지 브러시가 사용되는 경우 WPF에서 가능하지만 Silverlight는이를 지원하지 않고 확장 가능한 캔버스가 필요하며 캔버스가 필요합니다. 스케일이 업데이트 될 때 자체 높이와 너비입니다.
해결책
Uielement는 그것에 적용되는 변환을 알지 못합니다. 따라서 너비와 높이 특성이 변환을 반영하는 것은 불가능합니다.
한 가지 옵션은 변환을 전혀 사용하지 않고 사용하는 것입니다. 뷰 박스 (실버 라이트 툴킷에서)
ViewBox는 항상 뷰 박스를 채우도록 컨텐츠를 조정합니다.