nullsheng 2013-09-17 03:56 采纳率: 0%
浏览 3411

wpf 动态改变窗口大小动画

想做一个在指定屏幕位置弹出窗口到最大化的动画效果,弹出是要不断的改变窗口的位置和窗口的高宽。
用wpf的动画效果动态改变窗体的宽度和高度,这样实现时发现显示弹出效果时不连贯,应该是改变窗口高宽时,内部的控件也随之变化而出现闪屏。

请问可以这样实现弹出效果吗?或者有什么别的办法实现弹出动画,谢谢!

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-27 15:54
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这篇文章:解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题
    • 除此之外, 这篇博客: WPF 透明窗口可以调整尺寸(通过拖拽窗口边缘)中的 等比例的改变窗口中控件的大小 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      那我们可以在更改窗口大小时,等比例的更改窗口中控件的大小吗?
      当然可以啦!
      这里我们用Viewbox控件,就可以实现这个功能啦!

      第1步:我们只需要把所有的控件都放进Viewbox控件中。
      在这里插入图片描述

      第2步:然后,设置Viewbox的Stretch属性为UniformToFill
      在这里插入图片描述

      第3步:现在,我们缩放窗口时,窗口中的内容也会自动等比例进行缩放啦!
      在这里插入图片描述

      代码 (MainWindow.xaml):

      <Window x:Class="ResizeTransparentWindow.MainWindow"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
              xmlns:local="clr-namespace:ResizeTransparentWindow"
              mc:Ignorable="d"
              Title="MainWindow" Height="600" Width="800"
              
      
              Background="Transparent"
              AllowsTransparency="True"
              WindowStyle="None">
      
      
          <!--WindowChrome-->
          <WindowChrome.WindowChrome>
              <WindowChrome CaptionHeight="0" ResizeBorderThickness="20"/>
          </WindowChrome.WindowChrome>
      
      
          <!--Viewbox-->
          <Viewbox Stretch="UniformToFill">
          
              <!--内容(Content)-->
              <Grid Width="800" Height="600">
          
                  <!--背景(Background)-->
                  <Border Margin="10" Background="White" CornerRadius="25">
                      <Border.Effect>
                          <DropShadowEffect Direction="0" ShadowDepth="0" BlurRadius="20" 
                                            Opacity="0.25" Color="#FF5B5B5B">		
                          </DropShadowEffect>
                      </Border.Effect>
                  </Border>
          
                  <!--按钮(Button)-->
                  <Button Width="400" Height="200">
                      <TextBlock Width="400" Height="100" TextAlignment="Center"
                                 FontSize="70" FontFamily="Source Han Sans CN Medium"
                                 Text="Hello"/>
                  </Button>
          
              </Grid>
          
          </Viewbox>
      
      </Window>
      




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮