特殊的手風琴我已經把一個例子鏈接在這裏: 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嗎? –