2013-08-19 48 views
4

後,我已經得到了控制,它允許用戶旋轉圖像 - 這裏的XAML的一個簡化版本:XAML圖像適合家長旋轉

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 

    <Border Grid.Row="0" Margin="5" 
      BorderBrush="Black" BorderThickness="2" 
      Background="#ddd"> 
     <Viewbox> 
      <Image Source="image.jpg" RenderTransformOrigin="0.5, 0.5"> 
       <Image.RenderTransform> 
        <RotateTransform Angle="{Binding ElementName=Slider, Path=Value}"/> 
       </Image.RenderTransform> 
      </Image> 
     </Viewbox> 
    </Border> 

    <Slider x:Name="Slider" 
      Grid.Row="1" Margin="5" 
      Minimum="-180" Maximum="180" 
      Value="0"/> 
</Grid> 

我遇到的問題是圖像可以在旋轉時跨越包含矩形的邊界,而我需要調整它的大小以適合它。我可以在ViewModel上計算出最合適的值並將其綁定,但我相當肯定我可能只是錯過了XAML中的一個技巧來實現這一點。我認爲Viewbox可能已經做到了,但要麼不是這種情況,要麼我錯誤地使用了它...

回答

9

已修復!我知道它會很簡單:)

我將RenderTransform切換到LayoutTransform並像魅力一樣工作!

+2

此鏈接解釋了RenderTransform和LayoutTransform之間的區別以及它爲什麼可行: http://www.scottlogic.com/blog/2008/12/19/layouttransform-vs-rendertransform-whats-the-difference.html –