特殊的手风琴我已经把一个例子链接在这里: http://activeden.net/item/xml-horizontal-vertical-accordion-banner-rotator/full_screen_preview/127714?ref=premiumtemplates有点像控制
我尽量做到相似(但更基本的)与WPF的东西。 不是飞行文字的东西,只是基本的导航想法。 我试图用一些扩展器控件和一个堆栈面板来构建它。 我想出了是这样的:
<ItemsControl Grid.Row="1" IsTabStop="False" ItemsSource="{Binding Path=tabs,Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我用MVVM,所以也被应用模板:
<DataTemplate DataType="{x:Type vm:TabulatorViewModel}">
<Expander HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ExpandDirection="{Binding .direction,Mode=OneWay}" IsExpanded="{Binding .isExpanded,Mode=TwoWay}" Header="{Binding .header,Mode=OneWay}" >
<Expander.Style>
<Style TargetType="{x:Type Control}">
<Setter Property="Template" Value="{StaticResource HorizontalExpanderRight}" />
<Style.Triggers>
<DataTrigger Binding="{Binding .direction}" Value="Left">
<Setter Property="Template" Value="{StaticResource HorizontalExpanderLeft}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
<StackPanel>
<Label Content="{Binding .seitenInhalt.Header,Mode=OneWay}"></Label>
<TextBox Text="{Binding .seitenInhalt.Inhalt,Mode=OneWay}"></TextBox>
<Button Content="zurück" Command="{Binding .seitenInhalt.MovePreviousCommand}" />
<Button Content="vor" Command="{Binding .seitenInhalt.MoveNextCommand}"/>
</StackPanel>
</Expander>
</DataTemplate>
所以,这是工作至少一种。
从我目前的项目中的两个截图来解释问题: 由于声望点,无法发布图片。
所有项目应该使用堆叠面板的完整宽度,而不是像图片中那样。由于名誉点而无法发布图片。
所有项目应该使用完整的宽度,但是其中一个扩展项目应该有更大的宽度。如图所示,但折叠的物品应使用剩余的空间,每个填充空隙的数量相同)
任何帮助都会很棒,我希望能够理解我的目标/问题。
包装面板只在最后一个项目扩展到全部在其余的空间,也不扩大项目的全高(至少我认为是这样)。这不是我想要的效果。但thx为您的答案! –
你尝试过UniformGridPanel吗? –