WPFToolkit 手风琴"Stretch"垂直对齐是否应该受到手风琴项目的尊重?



我想重现类似于Outlook栏的行为,并找到了WPFToolkit的Accordion控件。我已经从WPFToolkit(2010年2月)示例应用程序中创建了一个测试应用程序(如下),我很难理解它的行为。

<Window x:Class="AccordionTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Layout.Toolkit"
    xmlns:system="clr-namespace:System;assembly=mscorlib"
    Title="MainWindow" Height="350" Width="525" Background="DimGray">
<Grid Background="Red">
    <toolkit:Accordion x:Name="acc" SelectionMode="One" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <toolkit:AccordionItem Content="item 1" Header="Item 1"  />
        <toolkit:AccordionItem Content="item 2" Header="Item 2" />
        <toolkit:AccordionItem Content="item 3" Header="Item 3" />
    </toolkit:Accordion>
</Grid>

我将VerticalAlignment设置为Stretch,手风琴本身从表单的顶部延伸到底部,但手风琴项目没有。最初,第一个项目("项目1")被拉伸,但如果我选择其他项目,它们不会展开和拉伸以填充空间。

因此,Outlook行为似乎在加载时起作用,但当我选择项目时,控件的行为并不像预期的那样。

有什么想法吗?

在搜索了更多关于VerticalAlignment的信息后,我发现这篇文章有一个解决方案:

也可以将Accordion SelectionSequence属性设置为CollapseBeforeExpand。

这个错误是由于每个手风琴项目的展开/折叠动画的时间问题(当展开和折叠同时发生时)和手风琴的布局更新混淆了可用于展开的大小。

这似乎解决了我的问题。

最新更新