动画 WPF DataGrid 行详细信息

2023-11-23

任何人都可以帮助我在打开和关闭时对 WPF DataGrid 行详细信息进行动画处理(例如,当选择行时,幻灯片像手风琴一样打开,而当未选择行时,幻灯片会关闭)?我需要一个简单的概念证明。

在此先感谢您的帮助 :)


冗长但有效:

<DataGrid.RowStyle>
    <Style TargetType="{x:Type DataGridRow}">
        <Setter Property="DetailsVisibility" Value="Collapsed"/>
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Trigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="DetailsVisibility">
                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.EnterActions>
                <Trigger.ExitActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="DetailsVisibility">
                                <DiscreteObjectKeyFrame KeyTime="0:0:0.4"  Value="{x:Static Visibility.Collapsed}"/>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.ExitActions>
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>
<DataGrid.RowDetailsTemplate>
    <DataTemplate>
        <Grid>
            <Grid.LayoutTransform>
                <ScaleTransform ScaleY="0"/>
            </Grid.LayoutTransform>
            <Grid.Style>
                <Style TargetType="Grid">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridRow}}"
                                     Value="True">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="LayoutTransform.ScaleY">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1">
                                                <EasingDoubleKeyFrame.EasingFunction>
                                                    <CubicEase EasingMode="EaseInOut" />
                                                </EasingDoubleKeyFrame.EasingFunction>
                                            </EasingDoubleKeyFrame>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.EnterActions>
                            <DataTrigger.ExitActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="LayoutTransform.ScaleY">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0">
                                                <EasingDoubleKeyFrame.EasingFunction>
                                                    <CubicEase EasingMode="EaseInOut" />
                                                </EasingDoubleKeyFrame.EasingFunction>
                                            </EasingDoubleKeyFrame>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.ExitActions>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Grid.Style>
            <Grid.Children>
                <TextBlock Text="Lorem ipsum dolor sit"/>
            </Grid.Children>
        </Grid>
    </DataTemplate>
</DataGrid.RowDetailsTemplate>

Edit:通过照顾DetailsVisibility手动在RowStyle返回动画现在也可以工作了。

请注意,一旦细节折叠,DataGrid 的高度就不会缩小,这可能会有点问题。这是 VirtualizingStackPanel 的一个已知问题,如果你负担得起,你可以更改DataGrid.ItemsPanel到普通的 StackPanel(如果您有大量数据,这将大大减慢应用程序的速度,因为每一行都会立即创建,即使不可见)。

另:按Ctrl + A很有趣。

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

动画 WPF DataGrid 行详细信息 的相关文章

  • 可观察集合未因 UI 更改而更新

    我正在尝试将可观察集合绑定到用户控件 但它不会在用户更改时更新 但在通过代码更改用户控件时它会更新 以下是我尝试过的一个例子 它可能有点长 但它正在运行 因此您可以按原样复制并粘贴代码 请参阅帖子末尾我的问题 客户 cs using Sys
  • 自定义 WPF 工具提示

    我想创建一个 WPF 工具提示 其中包含工具提示标题的标签 然后创建一个包含更详细文本的文本块 我在资源字典中创建了以下样式
  • 禁止/阻止选择 wpf 中禁用的组合框项目

    我正在编写一个应用程序 其中我想禁用其中的一些项目ComboBox并且还想禁止 阻止选择禁用的项目 请注意ComboBox在主窗口中有另一个 ComboBox 作为 ComboBox Item init 在运行时由DataTemplateS
  • WPF 无法从 url 检索 WebP 图像?

    我无法从网址检索图像 以前 在设置 HttpClient 标头之前 我根本无法连接到该站点 我可以从其他来源检索图像 但不能从这个特定来源检索图像 检索图像的代码 var img new BitmapImage img BeginInit
  • MVVM 中动态创建 MenuItem-Separator 的 WPF 光学样式

    我有一个MenuItem从动态创建其子菜单项ItemsSource 财产 对于分组 我在菜单中有分隔符 分隔符是由 ItemsSource 集合中的 ControlTemplate 为每个空条目创建的MenuItem ItemContain
  • 为基于架构的 XML 文件创建 WPF 编辑器

    这是场景 我们的服务器产品之一使用大型 XML 配置文件 该文件的布局相当好 并且针对 XSD 文件进行了验证 现在是时候构建一个配置 GUI 来维护这个文件了 我想深入研究 WPF 来完成它 我可以为每个配置部分布置一个单独的表单 每次向
  • WPF ComboBox 中具有本地化名称的枚举

    我有一个列出枚举的组合框 enum StatusEnum Open 1 Closed 2 InProgress 3
  • 如何正确地将样式应用于 Content Presenter

    我正在研究有关链接按钮的问题的答案 https stackoverflow com a 3564706 945 https stackoverflow com a 3564706 945 问题是 TextDecoration Underli
  • 背景颜色变化

    SolidColorBrush bgColor public ModernBTN InitializeComponent this Loaded delegate object sender RoutedEventArgs e bgColo
  • 如何让 MSIX 应用安装程序在每次生成/发布期间输出正确的设置?

    问题 如何获取 MSIXappinstaller在每次构建 发布期间输出正确的设置 Context 这是一个后续问题启用侧面加载后 为什么 MSIX 不会在每次应用程序运行时自动检查更新 https stackoverflow com q
  • ListViewItem 与 CheckBox IsChecked 绑定到 ViewModel

    我有一个带有 DataTemplate 的 ListView 用于为每个 ListViewItem 显示一个复选框
  • WPF:在 DependencyProperty.UnsetValue 上触发

    在回答中这个问题 https stackoverflow com questions 2596847 wpf applying a trigger on binding failure作出以下声明 理论上 可能 触发 x Static De
  • chrome css 动画上的抖动

    尝试使用两个具有相同背景图像 svg 的居中 div 制作一个从中心淡入图像的 css 动画 并为其宽度和背景位置设置动画 问题是 在 chrome 上 存在严重的抖动问题 也许是 chrome 循环执行动画步骤 而不是同时执行它们 这是j
  • 如何向 ItemsControl 中的 WPF 按钮添加相同的命令

    如何将命令添加到 wpf 按钮 该按钮是ItemsControl并正在修改ItemsSource itself 这是我的 XAML
  • Jquery 动画背景图像过渡

    我有一个导航栏 当将鼠标悬停在某个项目上时 背景图像会发生变化 效果很好 但是 我希望该图像从顶部滑入 并在您停止悬停时向上滑回 我一直在尝试使用 JQuery 使用 css bacgroundImage 和滑动或切换来做到这一点 但这些似
  • 获取 NullPointerException:尝试从字段“int android.view.View.mViewFlags”读取 - Android 动画

    我已经实现了一个动画 其中我在回收器视图中有图像视图 单击该项目时我想在回收器视图之外的图像视图上做一些动画 这样 我创建了一个新的图像视图 将其添加到主容器中 做了动画 最后我将它从主容器中取出 以下是回收器视图的点击项的代码 Code
  • 值转换器是否在 WPF 中按绑定实例化?

    是否为使用特定值转换器类的每个绑定实例化一个单独的 WPF 值转换器对象 我正在尝试创建一个双向位到布尔值转换器 我希望能够绑定一个bool财产 如IsChecked 到值类型中的一个位 例如ushort 我正在使用转换器parameter
  • 如何在WPF中使用一次性视图模型?

    如果视图模型引用非托管资源或具有事件处理程序 例如调度程序计时器上的处理已过去 如何确保视图模型得到正确处理 在第一种情况下 终结器是一种选择 虽然并不理想 但在后者中 它永远不会被调用 我们如何判断何时不再有视图附加到视图模型 我通过执行
  • WPF MVVM将DataTable绑定到DataGrid不显示数据

    我有一个简单的控件 其中包含一个 DataGrid 其中 ItemsSource 绑定到 DataTable 当我填充 DataTable 时 我可以看到 DataGrid 中添加了行 但没有显示任何数据 我没有为此 DataGrid 使用
  • 如何从 WPF 窗口显示 Winforms 对话框?

    这个问题的反面已经被回答过很多次了 public static void SetOwner object activeWindow object dialog if IsWindow dialog IsWindow activeWindow

随机推荐

  • 运行 shell 脚本并立即将其置于后台,但保留检查其输出的能力

    如何立即运行 shell 脚本背景但是 它仍然可以通过尾随来随时检查其输出 tmp output txt 如果可以就好了前景这个过程太晚了 P S 如果您还可以向我展示如何将后台进程 发送 到可能已初始化或尚未初始化的 GNU 屏幕 那就太
  • 从 csv 文件中的数据创建多个 csv 文件

    系统 OSX 或 Linux 我正在尝试自动化我的工作流程 每周我都会收到一个 excel 文件 我会将其转换为 csv 一个例子是 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 Title r t needed a
  • 为什么 Java 5+ API 不利用协变返回类型?

    从 Java 5 开始 我们可以协变返回类型 为什么 Java API 不利用这一点呢 Take Graphics2D create 例如 为什么不重写它来返回Graphics2D目的 在我看来 它在所有情况下都是向后兼容的 总的来说 这确
  • Mac OS X 上链接库的默认搜索目录是什么

    我已经建立了谷歌测试在 Mac OS X 上使用 CMake 并获得两个共享库 libgtest dylib and libgtest main dylib 现在我需要安装它们 我知道Linux上有一些默认的搜索目录 例如 usr lib
  • 在 Windows 中以编程方式确认打印成功

    我的公司正在开发一个财务应用程序 现在我们必须应对一项新法律 该法律要求我们无论是否打印收据都采取不同的行动 收据使用 Windows 中的标准打印队列在 A4 纸上的激光打印机上打印 有没有办法以编程方式检查某个打印作业是否确实成功 需要
  • 日期格式化后以小写形式显示 AM 和 PM

    格式化日期时间后 时间以大写形式显示 AM 或 PM 但我希望它以小写形式显示 例如 am 或 pm 这是我的代码 public class Timeis public static void main String s long ts 1
  • 单个 EventMachine 反应器中的多个服务器

    是否可以在单个事件机器中运行多个服务器 我的意思是单个客户端连接可以同时使用多个服务 例如 登录服务器对用户进行身份验证 然后用户可以通过单个客户端套接字同时使用聊天室和简单的游戏 例如跳棋 或者每个服务是否需要多个 eventmachin
  • 在 Python 中通过 HTTP 将未知大小的数据从客户端流式传输到服务器

    不幸的是 我之前的问题因是问题的 精确副本 而被关闭 而它绝对不是 特此再次 它不是重复的Python HTTP 使用流式传输大文件 那个处理的是大文件的流传输 我想将文件的任意块一一发送到同一个 http 连接 所以我有一个 20 MB
  • 带 switch 和 ForEach 的 Golang 模板

    我需要创建bash sh来自 golang 程序的文件 应该执行以下操作 Create ForEach循环依赖项并读取类型并根据类型 打印不同的回显消息 命令 我需要它来使用switch on the type与 Golang 的依赖关系
  • 如何将SQL Server数据库迁移到MySQL? [关闭]

    Closed 这个问题是无关 目前不接受答案 我有一个SQL服务器数据库有大量数据和空数据MySQL数据库 现在我想将SQL Server数据库的所有数据 包括数据库架构 复制到MySQL数据库 我考虑过使用原始 SQL 转储 但 SQL
  • 如何在我的网站上显示来自 Amazon S3 的图像?

    我的照片存储在 Amazon S3 上 这些图片是私人的 不公开 所以我无法通过直接链接显示它们s3 amazonaws bucket name key name image name jpg 我知道 Amazon S3 上的图像名称 如何
  • 通过 IN 子句对 SQL Server 结果进行排序

    我有一个使用 IN 子句的存储过程 在我的 ASP NET 应用程序中 我有一个多行文本框 它向存储过程提供值 我希望能够按文本框中输入的值进行排序 我找到了如何在 mySQL 中轻松执行此操作 使用 FIELD 函数 但没有找到 SQL
  • PHP:Adobe Reader 无法打开使用 mpdf 创建的 PDF 文件

    我正在使用 mpdf 即时创建 PDF 文件 文件可以在浏览器中正常打开 但 Adob e 给我一个错误 Adobe Acrobat Reader DC 无法打开 example filename pdf 因为它不是受支持的文件类型 或者因
  • Android webview:检测滚动

    我需要知道如何检测用户是否无法在 webView 中滚动 我想在用户向左或向右滑动时生成一个操作 但前提是用户无法滚动 IF the user swipes to the left AND the webview can t scroll
  • MVC中的文件上传

    我正在尝试在 MVC 中上传文件 我在 SO 上看到的大多数解决方案是使用 webform 我不想使用它 并且个人更喜欢使用流 如何在MVC上实现RESTful文件上传 谢谢 Edit 当您认为自己已经解决了所有问题时 您就会意识到还有更好
  • 如何查找具有特定标签(属性)的视图列表

    我为 UI 小部件设置了标签 并且想要检索具有特定标签的视图列表 使用View findViewWithTag test tag 只返回一个视图 而不是所有支持标签的视图 任何帮助表示赞赏 您不应期望从此方法中获得视图数组 因为方法签名本身
  • Sympy:手动处理等式

    我目前正在学习数学课程 我的目标是理解概念和过程 而不是尽快解决问题集 在解方程时 我希望能够自己研究它们 而不是让它们帮我解 假设我们有一个非常简单的方程z 1 4 如果我自己解决这个问题 我显然会从两边减去1 但我不知道是否sympy提
  • bash 脚本中的源文件

    我正在使用两个版本的 ROS 要使用它 我必须为特定版本获取一些环境变量 我想创建一个脚本来执行此操作 但是 如果我创建如下所示的脚本 则未设置变量 它们可能是在子 shell 中设置的 如何将文件发送到主终端 shell 来源 sh so
  • OutputStreamWriter 不追加

    原始代码及其将数据保存到SD卡的工作原理 Writing data to internal storage btnSaveData setOnClickListener new View OnClickListener Override p
  • 动画 WPF DataGrid 行详细信息

    任何人都可以帮助我在打开和关闭时对 WPF DataGrid 行详细信息进行动画处理 例如 当选择行时 幻灯片像手风琴一样打开 而当未选择行时 幻灯片会关闭 我需要一个简单的概念证明 在此先感谢您的帮助 冗长但有效