我有以下代码
<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中的值什么也不做。我怎样才能让它按我想要的那样扩展呢?
发布于 2011-05-20 17:42:49
可以在要设置动画的控件上使用RenderTransformOrigin="0.5,0.5"。
发布于 2015-10-17 15:27:34
你可以像这样修改你的代码:
<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")添加到画布。这样,如果您有一个具有动态宽度和高度的容器,它可以从中心缩放而不会出现问题。
发布于 2010-05-24 23:21:50
要使它从中心开始增长,您还必须对其边距进行动画处理(以设置宽度和高度动画的一半的速率)。
https://stackoverflow.com/questions/2898028
复制相似问题