- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 DoubleAnimation 更改 StackPanel 的 Height 属性。该代码不会抛出任何异常。但是动画不起作用。
<StackPanel x:Name="FlyoutContent">
<StackPanel.Resources>
<Storyboard x:Name="HideStackPanel">
<DoubleAnimation Storyboard.TargetName="ChangePasswordPanel" Storyboard.TargetProperty="Height" From="190" To="0" Duration="0:0:1">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
<Storyboard x:Name="ShowStackPanel">
<DoubleAnimation Storyboard.TargetName="ChangePasswordPanel" Storyboard.TargetProperty="Height" From="0" To="190" Duration="0:0:1">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</StackPanel.Resources>
<TextBlock Margin="0, 20, 0, 0" FontWeight="Bold" Text="Change Current Password" TextWrapping="Wrap" Style="{StaticResource BasicTextStyle}" HorizontalAlignment="Left" IsTapEnabled="True" Tapped="ChangePasswordHeader_Tapped"/>
<StackPanel x:Name="ChangePasswordPanel" Margin="0, 5, 0, 0" Height="0">
C# 事件处理器
private void ChangePasswordHeader_Tapped(object sender, TappedRoutedEventArgs e)
{
if (ChangePasswordPanel.Height == 0)
{
ShowStackPanel.Begin();
}
else
{
HideStackPanel.Begin();
}
}
它确实命中 ChangePasswordHeader_Tapped 事件处理程序并按预期执行 ShowStackPanel.Begin 或 HideStackPanel.Begin 语句。但对输出没有任何影响。 StackPanel 的高度保持为 0。
知道发生了什么事吗??
最佳答案
我自己想通了。我所要做的就是在 DoubleAnimation 上启用从属动画 (EnableDependentAnimation),因为此动画会影响布局。然后它完美地工作。
<Storyboard x:Name="HideChangePasswordPanel">
<DoubleAnimation EnableDependentAnimation="True" Storyboard.TargetName="ChangePasswordPanel" Storyboard.TargetProperty="Height" From="190" To="0" Duration="0:0:0.2">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
<Storyboard x:Name="ShowChangePasswordPanel">
<DoubleAnimation EnableDependentAnimation="True" Storyboard.TargetName="ChangePasswordPanel" Storyboard.TargetProperty="Height" From="0" To="190" Duration="0:0:0.2">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
希望它可以节省一些时间!
关于c# - Storyboard DoubleAnimation 不适用于 StackPanel 高度属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334470/
我有一个包含子 StackPanel 的 StackPanel(在后面的代码中添加)。 父堆栈面板 子堆栈面板 for (int i=1;i 如果您仅将 StackP
假设我们有一个水平方向且宽度为 100 像素的 Stackpanel。 在里面我制作了 11 个宽度为 10px 的方形 Canvas 绘图。 这意味着最后一个正方形将在 View 之外,因为它将扩展
我有两个停靠面板,每个停靠面板都有一个左侧 StackPanel。 的宽度底部 StackPanel 由 的宽度决定文字 在里面。 的宽度顶部 StackPanel 应该是 相同作为 的宽度底部 堆栈
我正在尝试创建一个 DataTamplate,它应该包含一个具有一定数量 StackPanel 的 StackPanel。
我有以下 WPF 控件 应用程序运行时看起来像这样。 问题是 - 当我的鼠标位于按钮之间时,弹出窗口已关闭。 (U、B、NB键之间的空隙) 如您所见 - Popup.IsOpen 属性绑定(bind)
有没有办法在运行时更改 StackPanel 内控件的顺序? 非常感谢, 保罗 最佳答案 stackPanel1.Children.Remove(item); stackPanel1.Children
我想在 ListBoxItem 上放一个命令。 ListBoxItem 使用由 StackPanel(包含 Image 和 TextBlock,均使用 Binding)组成的 DataTemplate
我有一个 Stackpanel 并希望项目根据其内容自动设置其大小,但项目不应自动填充 Stackpanel 的高度(但 Stackpanel 应根据最大项目具有自动高度)。我也试过 WrapPane
在这样的场景中: 是否可以拉伸(stretch)控制列表中的最后一个元素 (Element2) 以适应所有可能的空间(如 width="*")? 我被迫使用网格? 最佳答案
我对 WPF 很陌生,所以如果我遗漏了一些明显的东西,我深表歉意。我有这个模板绑定(bind)到 obs 中的项目。收藏。我试图让第二列,“测试测试......”部分具有可变宽度,填充父网格中的所有可
XAML有办法吗?说我想垂直居中对齐水平方向内的所有组件 StackPanel ? 我用下面的 XAML 达到了预期的结果: 但我需要重
对于 WPF/Silverlight 布局,使用具有大量行和列的 Grid 还是大量 Stackpanels 更好? 最佳答案 如果您需要水平和垂直排列的东西,您应该使用网格。当这些东西不需要与其他任
我试图在单击按钮时显示一个折叠的堆栈面板,但我遇到了问题,所以我尝试扭转我的想法,我能够折叠一个可见的堆栈面板。但不幸的是,我无法实现我想要的行为,在按钮单击时显示折叠的堆栈面板。到代码:D XAML
我需要用 stackpanel (框架)中的最后一个元素填充空白空间: _mainFrame
我是 WPF 的新手,我无法弄清楚一些事情。我刚开始一个新项目,我想制作一个 StackPanel,因为我在教程中看到了它。但是现在我已经实现了 StackPanel 并且出现了 2 个错误。 The
我正在尝试设置 StackPanel 的填充,但没有这样的属性。我尝试了 StackPanel.Border,但也没有这样的属性。 有什么想法吗? 最佳答案 您可以在 StackPanel 周围放置一
我正在尝试创建一个具有圆形背景的堆栈面板,它还有一个从灰色到透明的线性画笔 我用这里暴露的思路来防止裁剪 http://chriscavanagh.wordpress.com/2008/10/03/w
我是 WPF 的新手,我无法弄清楚一些事情。我刚开始一个新项目,我想制作一个 StackPanel,因为我在教程中看到了它。但是现在我已经实现了 StackPanel 并且出现了 2 个错误。 The
我试图在堆栈面板中插入多个矩形,但我不断收到错误消息“元素已经是另一个元素的子元素。”。如果我使用 Canvas ,也会发生同样的事情。 例子: List recList = new List();
我对 WPF 很陌生。我有一个使用 L2S 显示来自 SQL 数据库的数据的页面。 L2S 返回一个 DataTable,其中包含可供特定区域选择的所有可用选项。它从数据库返回的每一行都需要是一个 c
我是一名优秀的程序员,十分优秀!