Действительно странно.Я еще не понял, откуда возникла проблема, но вы можете обойти использование Projection вместо RenderTransform:
<Grid>
<ScrollViewer>
<Image Source="{Binding SourceImage}">
<Image.Projection>
<PlaneProjection RotationZ="{Binding RotateAngle}" />
</Image.Projection>
</Image>
</ScrollViewer>
</Grid>
Edit:
Хорошо, на самом деле кажетсяпроблема исходит от ScrollViewer, а не изображения.Установите RotateTransform непосредственно на ScrollViewer, и он должен работать:
<Grid>
<ScrollViewer>
<ScrollViewer.RenderTransform>
<RotateTransform Angle="{Binding RotateAngle}" />
</ScrollViewer.RenderTransform>
<Image Source="{Binding SourceImage}" />
</ScrollViewer>
</Grid>
Или поместить изображение в сетку внутри ScrollPanel:
<ScrollViewer>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Image Source="{Binding SourceImage}">
<Image.RenderTransform>
<RotateTransform Angle="{Binding RotateAngle}" />
</Image.RenderTransform>
</Image>
</Grid>
</ScrollViewer>
Но я все еще не понимаю, почему этослучается.
Редактировать 2:
Хорошо, я нашел ошибку.Он был представлен в последних сборках WP7.По сути, scrollviewer перезапишет RenderTransform своего дочернего элемента, если он отличается от своего собственного.Итак, у вас есть три решения: