C# splitcontainer-折叠时的动画
一个有一行两列的网格,当按钮单击其中一列时,我已经编写了代码,其中一列变为C# splitcontainer-折叠时的动画,c#,wpf,C#,Wpf,一个有一行两列的网格,当按钮单击其中一列时,我已经编写了代码,其中一列变为width=0,另一列变为* <Grid Name="grid1"> <Grid.RowDefinitions> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions>
width=0
,另一列变为*
<Grid Name="grid1">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" Name="col1"></ColumnDefinition>
<ColumnDefinition Width="1*" Name="col2"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Content="Button" Name="HidePanel1" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="1" VerticalAlignment="Top" Width="75" Click="HidePanel1_Click"/>
</Grid>
我在winform中使用了splitcontainer,但因为它在折叠一个面板时不支持动画,所以我将其更改为wpf。您将动画应用到了错误的属性。我想你想给
col1
的宽度设置动画,是吗?如果是这样,就不可能开箱即用,因为width属性不是double
,而是GridLength
。没有GridLengthAnimation
class。是的,你的权利。有没有替代col的方法(如Panel)?是否需要有两列?是的,一列用动画隐藏,另一列也用动画填充,如winform
中的splitcontainer
,但在折叠时有效
DoubleAnimation da = new DoubleAnimation();
da.From = 100;
da.To = 0;
da.Duration = new Duration(TimeSpan.FromSeconds(2));
col1.BeginAnimation(Grid.ColumnProperty, da);