首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF窗口ScaleTransform动画

WPF窗口ScaleTransform动画
EN

Stack Overflow用户
提问于 2013-09-15 02:16:19
回答 2查看 5.4K关注 0票数 2

我在WPF中有一个窗口,我想用ShowDialog显示它,当窗口显示时,它应该有一个缩放动画。我成功地制作了动画,除了一件事外,所有作品都很棒:

当窗口接近它的完全缩放状态和放松功能开始时,窗口的外部边缘似乎超出了实际的窗口边界并被剪裁。我如何使用这个缩放动画与放松,而不是它被剪裁?

这是我使用的缩放动画:

代码语言:javascript
复制
<DoubleAnimation Storyboard.TargetProperty="(Window.RenderTransform).(ScaleTransform.ScaleX)"
                 BeginTime="0:0:0.0" Duration="0:0:0.4" From="0" To="1">
   <DoubleAnimation.EasingFunction>
      <BackEase EasingMode="EaseOut" Amplitude="0.25" />
   </DoubleAnimation.EasingFunction>
</DoubleAnimation>

<DoubleAnimation Storyboard.TargetProperty="(Window.RenderTransform).(ScaleTransform.ScaleY)"
                 BeginTime="0:0:0.0" Duration="0:0:0.4" From="0" To="1">
   <DoubleAnimation.EasingFunction>
      <BackEase EasingMode="EaseOut" Amplitude="0.25" />
   </DoubleAnimation.EasingFunction>
</DoubleAnimation>

编辑:它看起来剪辑的原因是放松函数没有移动窗口,而是移动窗口中的内容;至少它看起来是这样做的。该窗口具有自定义样式,顶部的角是圆形的。实际窗口有透明的背景。因此,当放松功能在内部内容超过实际窗口的大小和硬90度角显示,因为内容是延伸到窗口的大小。

在这一点上伸展的内部内容不应该发生,因为动画是绑定到窗口本身,而不是窗口的内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-15 06:59:15

我也有过同样的问题。使用ScaleTransform时窗口不能增长,因为它本质上是语义的。也就是说,它不会改变WPF计算的布局值,只在布局设置之后应用。

我解决这一问题的办法是使窗口变大,并具有透明的边距。移除边界。您可以在这里找到一个有用的示例:WPF MessageBox

票数 1
EN

Stack Overflow用户

发布于 2013-09-15 18:49:36

尝试将宽度和高度设置为实际大小的<Window ... SizeToContent="WidthAndHeight" />

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

https://stackoverflow.com/questions/18808298

复制
相关文章

相似问题

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