2013-02-20 12 views
1

나는 코드가 제대로 작동하는 동안, 나는 이미지 ActualWidthActualHeight이 스케일링 후 변경되지 않는 이유를 이해하려고 노력하고 이미지 컨트롤을RenderTransform 수행 후 ActualWidth/ActualHeight가 변경되지 않는 이유는 무엇입니까?

private void ApplyScale() 
    { 
     ((CompositeTransform)img.RenderTransform).ScaleX = TotalImageScale; 
     ((CompositeTransform)img.RenderTransform).ScaleY = TotalImageScale; 
     Debug.WriteLine("img.Width: " + img.Width.ToString() + " - img.ActualWidth: " + img.ActualWidth.ToString()); 
     Debug.WriteLine("img.Height: " + img.Height.ToString() + " - img.ActualHeight: " + img.ActualHeight.ToString()); 

    } 

의 크기를 조정하려면 다음 코드가 있습니다. 항상 WidthHeight 값과 같습니다.

새 이미지 컨트롤 크기는 어떻게 받습니까? 규모 변경 비율을 통해 수동으로 계산해야합니까?

답변

1

RenderTransform은 레이아웃을 적용하지 않아야합니다. 변경 한 경우 수행 할 레이아웃은 ActualSize입니다. LayoutTransform을 사용하는 경우이 값을 변경해야하지만 이전 크기 및 배율 인수에서 새 크기를 찾는 것은 비교적 간단합니다.

+0

나는 본다. 하지만 Windows phone 8에는 LayoutTransform이 없습니다. – PutraKg

+0

@PraraKg Ahh 죄송합니다. LayoutTransform과 ActualSize를보고 WPF를 사용했습니다. WP8에 대해서는 아무 것도 모르지만 RenderTransform에 대한 정보는 여전히 정확합니다. – TheEvilPenguin