如何“拉伸” WPF效果变换中图像的属性?

发布于 2024-11-08 21:23:31 字数 2116 浏览 0 评论 0原文

WPF 中图像的“拉伸”属性如何影响变换?

我发现图像的拉伸属性会影响应用于它的变换。 当stretch=fill时,一切都很好,但如果stretch=uniform,变换就会被改变。 我不明白为什么会发生这种情况。请解释一下。

图片 1

代码:

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

how "Stretch" property of Image in WPF effects Transforms ?

I found that Stretch property of image effets the transforms applied to it.
When stretch=fill, then everything is fine but if stretch=uniform, the transforms are chaged.
I not getting why this happening. Plz explain.

Image 1

Image 2

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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

树深时见影 2024-11-15 21:23:31

根据我的测试,这似乎只是 Visual Studio 设计器预览此 XAML 的方式中的一个错误。

我已获取您的代码并将其加载到 Visual Studio 2010 和 Expression Blend 4 中。在 Visual Studio 的设计器中,我明白您在说什么。在 Expression Blend 中,预览是正确的。

最重要的是,当我运行应用程序时,它会正确呈现。所以我认为你没问题。当您必须使用此控件时,假装它没有这样做或使用 Expression Blend。

From my testing, it appears that this is just a bug in the way the Visual Studio designer previews this XAML.

I've taken your code and loaded it in both Visual Studio 2010 and in Expression Blend 4. In Visual Studio's designer, I see what you're talking about. In Expression Blend, the preview is correct.

Most importantly, when I run the application, it is rendered correctly. So I think you're ok. Just pretend like its not doing that or use Expression Blend when you have to work with this control.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文