2012-02-14 94 views
0

我想重现类似于Outlook栏的行为,并找到WPFToolkit的Accordion控件。我从WPFToolkit(2010年2月)示例应用程序(下面)创建了一个测试应用程序我无法理解行为。AccordionItems应该支持WPFToolkit Accordion“Stretch”VerticalAlignment吗?

<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

我将你的确切代码复制到一个新的wpf项目中。当我点击任何项目时,它会扩展以填充垂直空间(全部为蓝色)。你有一些代码隐藏或什么? – 2012-02-14 20:24:33

+0

@Paul Hoenecke:我只是创建了一个新的WPF应用程序,并从WPF示例项目中复制了上述代码。唯一可能不同的是,我在同一个解决方案中构建WPFToolkit和Controls.Layout.Toolkit dll。 – 2012-02-14 20:31:31

回答

0

搜索了一下关于多后VerticalAlignment,我发现这个post,有一个解决方案:

您还可以设置手风琴SelectionSequence属性CollapseBeforeExpand。

此错误是由于每个手风琴项目(当同时展开和收缩时)的展开/折叠动画的计时问题与手风琴的布局更新有关,这些手风琴会扩大可用尺寸。

这似乎解决了我的问题。