我尝试按照Rachel Lim关于“单一窗口”应用程序的教程: Click for tutorial 。到目前为止,一切正常,但是:
按钮垂直对齐,我希望它们是水平的!我已经厌倦了以下事情:
<DockPanel DataContext="{StaticResource ResourceKey=MainFrameViewModel}">
<Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="2">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<ItemsControl ItemsSource="{Binding PageViewModels}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding Name}"
Command="{Binding DataContext.ChangePageCommand, RelativeSource={RelativeSource AncestorType= DockPanel}}"
CommandParameter="{Binding }"
Width="200"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Border>
正如您所看到的,我将所有来自Border的东西放入一个水平方向的StackPanel但它不起作用。我已经尝试过堆叠板的每个位置都没有成功!按钮始终是垂直的
提前多多谢谢!
答案 0 :(得分:1)
ItemsControl在内部使用另一个面板(默认情况下,它是一个垂直方向的VirtualizingStackPanel
) - 您可以通过ItemsControl.ItemPanel
属性进行更改。这就是围绕StackPanel
的{{1}}不会影响按钮对齐的原因。您应该使用以下代码:
ItemsControl
如果您想了解有关ItemsControls的更多信息,我会推荐一系列精彩的博客文章&#34; ItemsControl:A to Z&#34; WPF博士:http://drwpf.com/blog/itemscontrol-a-to-z/
如果您有任何其他问题,请随时提出。