我正在创建一个 Windows 应用程序(WPF)和 C#。在我的界面中,我需要添加一些布局,比如浏览文件夹,在列表视图中显示文件等等。
我的要求是: 上述面板应该是可折叠的面板,我猜想在 WPF 中没有可折叠面板的选项。
我需要为此创建一个自定义控件吗?如果需要,请告诉我如何操作?
我正在创建一个 Windows 应用程序(WPF)和 C#。在我的界面中,我需要添加一些布局,比如浏览文件夹,在列表视图中显示文件等等。
我的要求是: 上述面板应该是可折叠的面板,我猜想在 WPF 中没有可折叠面板的选项。
我需要为此创建一个自定义控件吗?如果需要,请告诉我如何操作?
Expander控件可能是您要找的。来自MSDN:
Expander类
表示显示一个可折叠窗口的标题的控件,该窗口显示内容。
这样可以吗?
<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);
}
}
你可以使用任何元素控件,例如网格、堆栈、停靠和边框等...