2

Windows Phone 7アプリケーションで、ユーザーがボタンをクリックしたときに画像に90度の回転を適用したいと思います。私は次のことをしています:

<Image Height="369" Name="imageView" Stretch="Uniform" Width="394">
   <Image.RenderTransform>
      <RotateTransform Angle="0" />
   </Image.RenderTransform>
</Image>

機能で:

((RotateTransform)imageView.RenderTransform).Angle += 90;

ここまでは順調ですね。スクロールビューア内に画像を配置すると、問題が発生します。

<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible"  ScrollViewer.VerticalScrollBarVisibility="Visible" Height="389" HorizontalAlignment="Left" Margin="12,78,0,0" Name="scrollViewer" VerticalAlignment="Top" Width="409">
   <Image Height="369" Name="imageView" Stretch="Uniform" Width="394">
      <Image.RenderTransform>
         <RotateTransform Angle="0" />
      </Image.RenderTransform>
   </Image>
</ScrollViewer>

この場合、次のコード行でエラー(InvalidCastExceptionは処理されませんでした)が発生します。

((RotateTransform)imageView.RenderTransform).Angle += 90;
4

1 に答える 1

1

問題は、imageView.RenderTransformがRotateTransformではなく、CompositeTransformであるため、代わりにこれを試してください。

((CompositeTransform)imageView.RenderTransform).Rotation += 90;

また、XAMLで直接Compositeトランスフォームとして指定する場合は、次のようにすることができます。

<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible"  ScrollViewer.VerticalScrollBarVisibility="Visible" Height="389" HorizontalAlignment="Left" Margin="12,78,0,0" Name="scrollViewer" VerticalAlignment="Top" Width="409">
    <StackPanel>
         <Image Height="369" Name="imageView" Stretch="Uniform" Width="394" Source="/PhoneApp2;component/Images/lumia-920-rainbow.png">
            <Image.RenderTransform>
                <CompositeTransform Rotation="0" CenterX="197" CenterY="184" />
            </Image.RenderTransform>
        </Image>
    <StackPanel>
</ScrollViewer>
于 2012-12-19T17:57:19.933 に答える