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

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>
      




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

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题