Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# splitcontainer-折叠时的动画_C#_Wpf - Fatal编程技术网

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);