WPF效果中的Image的“Stretch”属性如何变换?
我发现图像的Stretch属性会产生应用于它的变换。 当stretch = fill时,一切都很好,但如果stretch = uniform,则变换是chaged。 我不明白为什么会发生这种情况。 Plz解释。
CODE:
<Canvas Height="200" Width="200">
<Image Height="50" Width="50" RenderTransformOrigin="0.5,0.5" Source="Image.jpg" Stretch="Fill">
<Image.RenderTransform>
<TransformGroup>
<RotateTransform Angle="200" />
<TranslateTransform X="100" Y="100"/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<Rectangle Height="50" Width="50" RenderTransformOrigin="0.5,0.5" Fill="RoyalBlue" Opacity="0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<RotateTransform Angle="200" />
<TranslateTransform X="100" Y="100"/>
</TransformGroup>
</Image.RenderTransform>
</Rectangle>
</Canvas>
<Canvas Height="200" Width="200">
<Image Height="50" Width="50" RenderTransformOrigin="0.5,0.5" Source="Image.jpg" Stretch="Uniform">
<Image.RenderTransform>
<TransformGroup>
<RotateTransform Angle="200" />
<TranslateTransform X="100" Y="100"/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<Rectangle Height="50" Width="50" RenderTransformOrigin="0.5,0.5" Fill="RoyalBlue" Opacity="0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<RotateTransform Angle="200" />
<TranslateTransform X="100" Y="100"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
答案 0 :(得分:1)
从我的测试来看,这似乎只是Visual Studio设计者预览此XAML的方式中的一个错误。
我已经将您的代码加载到Visual Studio 2010和Expression Blend 4中。在Visual Studio的设计器中,我看到了您正在谈论的内容。在Expression Blend中,预览是正确的。
最重要的是,当我运行应用程序时,它会正确呈现。所以我觉得你没事。只是假装它没有这样做或者在你必须使用这个控件时使用Expression Blend。