【问题标题】:Image Rotation inside WP7 ScrollviewerWP7 Scrollviewer 中的图像旋转
【发布时间】:2023-03-03 04:54:22
【问题描述】:

在 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;

【问题讨论】:

    标签: silverlight windows-phone-7 image-rotation


    【解决方案1】:

    问题在于 imageView.RenderTransform 不是 RotateTransform 而是 CompositeTransform ,所以试试这个吧:

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

    如果您也想直接在 XAML 中将其指定为复合转换,您可以这样做:

    <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>
    

    【讨论】:

    • 它工作正常!现在的问题是,当我滚动图像时消失了.. 谢谢
    • 哦,我没看到,但是如果您将图像放在 StackPanel 中,它似乎可以正常工作,请参阅更新后的答案。我还将变换的中心移到了中间,否则图像有时会出现在可见区域之外。希望能解决您的问题。
    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多