首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScaleTransform和CenterX

ScaleTransform和CenterX
EN

Stack Overflow用户
提问于 2010-05-24 23:19:17
回答 6查看 9.8K关注 0票数 8

我有以下代码

代码语言:javascript
复制
<Canvas Width="800" Height="600">
    ...
    <local:UpgradeLandDialog x:Name="upgradeDialog" Canvas.Left="250" Canvas.Top="200" HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="0">
        <local:UpgradeLandDialog.LayoutTransform>
            <ScaleTransform ScaleX="0" ScaleY="0" CenterX="400" CenterY="300"/>
        </local:UpgradeLandDialog.LayoutTransform>
    </local:UpgradeLandDialog>
</Canvas>

在UserControl中,我将ScaleTranform动画设置为1。我希望UserControl从它的中心“增长”,但它从它的左上角“增长”。CenterX和CenterY中的值什么也不做。我怎样才能让它按我想要的那样扩展呢?

EN

回答 6

Stack Overflow用户

发布于 2011-05-20 17:42:49

可以在要设置动画的控件上使用RenderTransformOrigin="0.5,0.5"

票数 18
EN

Stack Overflow用户

发布于 2015-10-17 15:27:34

你可以像这样修改你的代码:

代码语言:javascript
复制
<Canvas Width="800" Height="600" RenderTransformOrigin="0.5,0.5">
    <local:UpgradeLandDialog x:Name="upgradeDialog" Canvas.Left="250" Canvas.Top="200" HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="0">
        <local:UpgradeLandDialog.LayoutTransform>
            <ScaleTransform ScaleX="0" ScaleY="0"/>
        </local:UpgradeLandDialog.LayoutTransform>
    </local:UpgradeLandDialog>
</Canvas>

删除(CenterX="400" CenterY="300")并将(RenderTransformOrigin="0.5,0.5")添加到画布。这样,如果您有一个具有动态宽度和高度的容器,它可以从中心缩放而不会出现问题。

票数 3
EN

Stack Overflow用户

发布于 2010-05-24 23:21:50

要使它从中心开始增长,您还必须对其边距进行动画处理(以设置宽度和高度动画的一半的速率)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2898028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档