我想重现类似于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行为似乎在加载时工作,但是当我选择项目时,控件的行为并不像预期的那样。
任何想法?
答案 0 :(得分:0)
在搜索了有关VerticalAlignment的更多内容之后,我发现这个post有一个解决方案:
您还可以将Accordion SelectionSequence属性设置为CollapseBeforeExpand。
这个错误是由于每个手风琴项目的扩展/折叠动画的时间问题(当扩展和折叠同时发生时)与手风琴的布局更新,这会影响可用于扩展的大小。
这似乎解决了我的问题。