WPF 动画第一次不运行

2024-04-29

我有一个窗口,其目的是在显示时淡入。第一次使用时,动画不会运行。在后续使用中,效果很好。这是一个请求者,我实例化它来显示一些东西——我不会保留它并重新使用实例。我实例化请求者,设置各种属性(例如 .Top 和 .Left),然后调用 ShowDialog。在构造函数中,我设置 DataContext。如果我将其注释掉(因为另一个线程建议这可能是由于在播放动画时设置数据上下文引起的),那么它就可以解决问题。然而,直到调用构造函数之后我才调用 ShowDialog。而且因为我每次想使用它时都会实例化一个新实例,所以我不明白为什么只有在第一次运行时才会出现问题。

就好像第一次加载程序集,但 VS 输出窗口没有显示这种情况。

窗口从零不透明度开始,因此通过变得可见,它表明动画正在被触发,只是没有时间运行。如果我将 BeginTime 设置为半秒,那么它每次都会工作,但显然当它响应按钮按下时出现时会更加缓慢,并且在速度较慢的机器上可能仍然不够。

我在 XAML 中定义动画

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
        <BeginStoryboard>
            <Storyboard Name="FormFade">
                <DoubleAnimation Name="FormFadeAnimation"
                                 Storyboard.TargetProperty="(Window.Opacity)"
                                 From="0.0" To="1.0" Duration="0:0:0.25"
                                 AutoReverse="False" RepeatBehavior="1x"
                                 BeginTime="0:0:0"/>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Window.Triggers>

是否有更合适的事件来触发?我尝试了 Window.Initialized 和 Window.IsVisibleChanged 但似乎都不是路由事件,因此它们在解析 XAML 时抛出异常。

我可以将其全部转移到代码后面(因为无论如何都必须在那里进行淡出),但如果可以的话,更喜欢将内容放在 xaml 中。

我可以从 Dispatcher.BeginInvoke 分配 DataContext,但这看起来很混乱,并且将来要填充的字段可能会在动画之后发生并且看起来很糟糕,所以我只是将问题隐藏到以后。

有人对此有什么想法吗?


试试这个代码:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication2.MainWindow"
    x:Name="thisWindow"
    Title="MainWindow"
    Width="640" Height="480" AllowsTransparency="True" WindowStyle="None">

    <Window.Resources>
        <Storyboard x:Key="MyStoryboard">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="thisWindow">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource MyStoryboard}"/>
        </EventTrigger>
    </Window.Triggers>

    <Grid x:Name="LayoutRoot"/>

</Window>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 动画第一次不运行 的相关文章

  • iTextSharp 从 WPF 固定文档生成 PDF

    我有一个简单的 WPF 应用程序 可以显示和打印一些内容 使用固定文档进行报告 如何使用免费且开放的解决方案从中生成 PDF 比如iTextSharp WPF 固定文档 也称为 XPS 文档 是对 PDF 的明显改进 它具有 PDF 所缺乏
  • WPF 应用程序的最佳本地数据库解决方案是什么?

    目前适用于 WPF 应用程序的最佳解决方案是什么一台电脑 where 各种用户登录它们并使用它们在本地获取 保存信息 以下是我看到选项的方式 MDF似乎是最好的选择 因为我假设您可以很好地锁定它 这样即使用户可以访问 mdf 文件 他们仍然
  • 弹簧质量系统的阻尼效果(或者这是 ElasticEase?)

    我试图在代码中模拟动画效果 几乎任何语言都可以 因为它看起来是数学而不是语言 本质上 它是质量弹簧系统的仿真 我一直在研究 WPF Silverlight 的ElasticEase这似乎与我正在寻找的非常接近 但又不完全一样 首先 这就是我
  • 如何从注册表获取安装的软件路径?

    我需要替换安装在任何驱动器 如 C D E 中的文件 我想从注册表中找到安装的文件路径并将该文件替换为其他文件 软件将安装在任何驱动器中 我想替换文件 我正在使用这段代码 如何使用注册表查找安装的文件路径并替换为 C 中的其他文件 stri
  • WPF MVVM 在窗口关闭时调用 ViewModel Save 方法

    我已经弄清楚如何从我的 ViewModel 关闭窗口 现在我需要从另一侧解决窗口关闭问题 当用户单击窗口的关闭按钮时 我需要在 ViewModel 中触发 Save 方法 我正在考虑将 Command 属性绑定到 Window 的关闭事件
  • 嵌套控件结构 - 使用 XAML 还是 C#?

    我想创建一个由相当多的元素组成的结构 它的基本布局如下
  • 如何禁用基于 ValidationRule 类的按钮?

    如何禁用基于 ValidationRule 类的 WPF 按钮 下面的代码可以很好地突出显示 TextBox
  • OxyPlot 中日期时间轴上的不规则间隔

    我有一个 WPF 应用程序 其中使用 OxyPlot 来绘制图表 我不断地将点添加到图表中的线系列中 X 轴是日期时间轴 其间隔类型设置为秒 点不断添加到线系列中 当第一个点和最后一个点之间的时间跨度是特定的秒数时 我删除第一个点并使绘图无
  • 在代码中而不是 XAML 中呈现 UserControl

    我想用RenderTargetBitmap将 UserControl 呈现为位图 而无需为其编写 XAML 当我这样做时 我得到一张空白图像 我是否错过了关键的一步 ValTool Controls VideoFisheyeOverlayC
  • 如何在WPF中使用一次性视图模型?

    如果视图模型引用非托管资源或具有事件处理程序 例如调度程序计时器上的处理已过去 如何确保视图模型得到正确处理 在第一种情况下 终结器是一种选择 虽然并不理想 但在后者中 它永远不会被调用 我们如何判断何时不再有视图附加到视图模型 我通过执行
  • 将 System.Drawing.Image 转换为 System.Windows.Media.ImageSource 但没有结果

    我想在我的 WPF 应用程序中将 Image 转换为 ImageSource 我使用正常工作的 Code128 库 已在 WinForms 应用程序中检查 下面的函数返回具有适当大小的 ImageSource 但没有任何内容可见 priva
  • 带有复选框的 WPF ListBox:在选中之前选择复选框

    Problem 我有一个列表框 其中列表框是复选框 第一次单击时 复选框将被选中并选中 第二次单击时 仅设置复选框 人们可以使用箭头键重新选择不同的复选框 我的目标是 首先选择复选框 然后再检查 再次单击它 从而消除对箭头键的需要 Goal
  • 默认转换器何时启动?

    使用以下代码 虽然 Text 属性绑定到 DateTime 源属性 但我注意到 WPF 似乎会自动将文本转换为 DateTime 而无需我编写 ValueConverter 有人可以解释一下这是如何完成的吗
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互
  • 在 wpf 中隐藏或禁用输入手势文本

    假设我们使用 Ctrl S 输入手势来保存项目 在 文件 菜单 保存 Ctrl S 中显示这样的文本 现在 在 SaveCommand 的 canexecute 上 我检查项目是否需要保存 如果不需要 则禁用 保存 在这种情况下 我会看到类
  • WPF。如何从另一个窗口隐藏/显示主窗口

    我有两个窗口 MainWindow 和 Login 显示登录的按钮位于主窗口 this Hide Login li new Login li Show 登录窗口上有一个检查密码的按钮 如果密码正确 我如何显示主窗口 将参数传递给 MainW
  • 如何(完全)在列表框中实现就地编辑?

    我正在构建一个应用程序 其中ListBox正在显示Description其项目的属性 我想实现与您在 Windows 资源管理器中编辑文件名时发现的相同类型的就地编辑功能 但我发现这需要大量工作 到目前为止我所拥有的是ContextMenu
  • C# - 继承WPF布局 - Window from Window

    我的 Window 继承有问题 我不明白问题是什么 我认为 我的布局 MediaLibrary xaml 必须继承 MainWindow 但我不知道该怎么做 有2类 主窗口 xaml
  • 数据模板绑定垃圾邮件输出窗口出现错误:找不到管理 FrameworkElemen

    我有问题 System Windows Data 错误 2 找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement BindingExpression 无路径 数据项 空 目标元素是 So
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程

随机推荐

  • 组合类中的多态 lift-json 反序列化

    我正在尝试使用 Lift Json 自动将 json 对象反序列化为 scala 类 其中的坐标类用于存储 GeoJson 信息 case class Request name String geometry Geometry sealed
  • Joomla 2.5 中基于类别的文章的替代布局

    目前 我的 Joomla 2 5 安装中的文章有 2 个 布局 default php default links php feature link php feature link php 当在 文章管理器 的 替代布局 下的 编辑文章
  • 将事件绑定到尚未创建的 DOM 元素 (jquery)

    如何将事件绑定到脚本加载时不存在的 html 元素 我的脚本的一部分将这些添加到 DOM 中 a class btn remove item href link a 问题是我不能这样做 document ready function btn
  • 音乐播放器请求写入外部存储权限?

    我正在 Android 中创建一个音乐播放器应用程序 它工作正常 但每当我滚动歌曲列表时 它就会开始崩溃并给出此异常 Process com example lenovo musicplayer PID 31100 java lang Se
  • 如何将所有输入字段值更改为大写

    我有一组 PHP 字段 在将值发送到查询之前 我想将字母更改为大写 有没有办法做类似的事情 cust name john cust gender male lower upper conversion 那么现在 john 已更改为 JOHN
  • 流式音频播放延迟(约 200 毫秒)

    我有一个播放流式音频数据的应用程序 如聊天客户端 该工作流程涉及三个简单步骤 首先发送文件头信息 采样率 每个样本的位数和通道数 音频波形输出设备根据上述参数进行初始化 音频 pcm 数据被发送并在上述设备上播放 数据接收代码是本机的 C
  • ASP.Net webform生成Excel文件到本地PC而不是服务器

    继有关生成 Excel 文件的问题后 我需要能够在 Webform 应用程序位于远程 Web 服务器上时在本地创建文件 这不是我以前处理过的事情 所以我发现很难确切地问什么 我在 VS2010 上使用 C 的 WebForms 伊安德森 h
  • 如何减少Scala中创建的对象数量?

    我正在 Scala 中编写一个计算机图形应用程序 它使用 RGB 类返回图像中某个点的颜色 正如你可以想象的 返回颜色 RGB 对象的函数被调用了很多次 class RGB val red Int val green Int val blu
  • 如何TDD UIGestureRecognizers?

    在尝试使用 UIGestureRecognizer 编写 TDD 代码时 我发现无法以编程方式验证目标操作 如果没有这个 我不确定我是否可以正确测试它 如果手势识别器在 IB 中设置 支持 iOS 5 则目标动作会在 NIB Storybo
  • 无法在捆绑执行时安装 Locomotive CMS

    我正在尝试安装 LocomotiveCMS 并尝试遵循本指南 http doc locomotivecms com guides get started install engine http doc locomotivecms com g
  • Android 13 (SDK 33):Bundle.getSerialized(String) 已弃用,有什么替代方案?

    从 API 级别 33 开始getSerializable String Bundle 类的方法已弃用 文档建议使用getSerializable String Class 反而 但该功能仅适用于 API 级别 33 我当前的代码 val
  • Python 独有的 XML 规范化 (xml-exc-c14n)

    在 Python 中 我需要规范化 c14n XML 字符串 我可以使用哪个模块 包来实现此目的 我应该怎么做 我更喜欢使用默认的 python 2 7 模块 无需额外安装或补丁 参考见 http www w3 org TR xml exc
  • PHP 致命错误:未捕获错误:未找到“Facebook\WebDriver\ChromeOptions”类

    namespace Facebook WebDriver use Facebook WebDriver Remote DesiredCapabilities use Facebook WebDriver Remote RemoteWebDr
  • 二叉搜索树中序遍历

    我对这段代码感到困惑 void in order traversal iterative BinaryTree root stack
  • “class java.lang.String”中名为“tablename”的属性没有 getter

    我收到错误There is no getter for property named tablename in class java lang String 当我使用mybatis时 我的映射器 xml 是这样的
  • 如何使图像保留在 CSS 网格容器的行中?

    下面的代码显示了当我调整窗口大小时的预期行为 Chrome 60 和 Firefox 55 中 但 iOS Safari 10 3 中除外 这很可能是它在 Safari 中行为不当的另一个问题 html body width 100 hei
  • 没有 ProfilePage 索引,但我有 LoginAndSignupPage

    我有一个前两天突然出现的问题 我有一个 prestashop 模块 可以让我从 Instagram 页面检索图像 它运行得很好 但突然之间 什么都不起作用了 我有一个错误 ProfilePage 未定义的索引 我做了很多var dump 我
  • 从 URL 中删除文件扩展名

    我从未使用过 mod rewrite 但我想从网站的网址中删除所有文件扩展名 我需要遵循什么规则才能做到这一点 我已经尝试过这个 但是每次我单击网站上的链接时都会出现内部错误 RewriteRule 1 php L Options Mult
  • 使用 client_body_in_file_only 进行 nginx 文件上传

    晚上好 我需要将静态内容上传到 nginx 服务器 1 9 因此上传模块不适用于此版本 我读过这篇文章 Nginx 直接文件上传 无需通过后端传递 https coderwall com p swgfvw nginx direct file
  • WPF 动画第一次不运行

    我有一个窗口 其目的是在显示时淡入 第一次使用时 动画不会运行 在后续使用中 效果很好 这是一个请求者 我实例化它来显示一些东西 我不会保留它并重新使用实例 我实例化请求者 设置各种属性 例如 Top 和 Left 然后调用 ShowDia