28

我正在创建一个 Windows 应用程序 (WPF) 和 C#。在我看来,我必须添加一些布局,例如浏览文件夹,在列表视图中显示文件夹中的文件......等等

我的要求是:上面提到的面板应该是可折叠面板,我猜,我们在 wpf 中没有可折叠面板的选项。

我必须为此创建一个自定义控件吗?如果是这样,请建议我如何做到这一点?

4

2 回答 2

71

Expander 控件可能就是您要找的。来自MSDN

扩展器类

表示显示标题的控件,该标题具有显示内容的可折叠窗口。

于 2009-08-20T09:51:49.007 回答
10

可以这样吗?

 <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="2*"/>
    </Grid.RowDefinitions>
    <Border  Background="Red" Height="12" VerticalAlignment="Top" MouseEnter="StackPanel_MouseEnter" MouseLeave="StackPanel_MouseLeave"></Border>
</Grid>    

后面的 C# 代码

 private void StackPanel_MouseEnter(object sender, MouseEventArgs e)
    {
        Border sp = sender as Border;
        DoubleAnimation db = new DoubleAnimation();
        //db.From = 12;
        db.To = 150;
        db.Duration = TimeSpan.FromSeconds(0.5);
        db.AutoReverse = false;
        db.RepeatBehavior = new RepeatBehavior(1);
        sp.BeginAnimation(StackPanel.HeightProperty, db);
    }

    private void StackPanel_MouseLeave(object sender, MouseEventArgs e)
    {
        Border sp = sender as Border;
        DoubleAnimation db = new DoubleAnimation();
        //db.From = 12;
        db.To = 12;
        db.Duration = TimeSpan.FromSeconds(0.5);
        db.AutoReverse = false;
        db.RepeatBehavior = new RepeatBehavior(1);
        sp.BeginAnimation(StackPanel.HeightProperty, db);
    }
}

您可以使用任何元素控件,如网格、堆栈、停靠、边框......

于 2013-11-28T04:11:29.567 回答