gpt4 book ai didi

wpf - 在 XAML 中动画网格列或网格行?

转载 作者:行者123 更新时间:2023-12-03 23:07:58 25 4
gpt4 key购买 nike

有什么方法可以从 XAML 为网格列宽或网格行高设置动画?

最佳答案

怎么解决?为什么不在要设置动画的特定行内放置网格(或任何其他所需控件),将行高设置为“自动”,然后为控件的高度设置动画。它对我有用。

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button x:Name="ExpandCollapseBtn" Width="100" Click="ExpandCollapse_Click"/>
<WrapPanel x:Name="ToolBox" Grid.Row="1" Height="0">
<Button Content="1" Width="50" Height="50"/>
<Button Content="2" Width="50" Height="50"/>
<Button Content="3" Width="50" Height="50"/>
<Button Content="4" Width="50" Height="50"/>
</WrapPanel>
</Grid>

后面的代码:
private bool Expanded = false;
void ExpandCollapse_Click(object sender, RoutedEventArgs e)
{
if (Expanded)
{
var anim = new DoubleAnimation(0, (Duration)TimeSpan.FromSeconds(0.3));
anim.Completed += (s, _) => Expanded = false;
ToolBox.BeginAnimation(ContentControl.HeightProperty, anim);
}
else
{
var anim = new DoubleAnimation(100, (Duration)TimeSpan.FromSeconds(0.3));
anim.Completed += (s, _) => Expanded = true;
ToolBox.BeginAnimation(ContentControl.HeightProperty, anim);
}
}

我承认这不是你要找的。但它是一个快速的解决方案(当然,假设最终您希望通过为网格行设置动画来将 UIElement 放置在网格内)。您可以类似地为列宽执行此操作。

关于wpf - 在 XAML 中动画网格列或网格行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com