2013-08-19 2 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 –

Смежные вопросы