水平对齐ItemsControl中的项目(无xaml)

时间:2017-06-01 11:42:15

标签: c# wpf itemscontrol

我正在寻找一种方法来设置ItemsControl中项目的对齐方式,使它们不是从上到下(默认),而是从左到右。

我认为有一个可以轻松设置的属性,比如

ItemsControl crtl = new ItemsControl;
...
ctrl.ContentAlignment = ContentAlignment.Horizontal; // does not exist

但似乎事实并非如此。在XAML中有无数的例子来实现这一点(通常他们使用样式或模板或类似的东西),但我在普通的C#代码中找不到。而且我也不知道如何将xaml语句转换为C#代码。

任何人都可以提示吗?

1 个答案:

答案 0 :(得分:3)

让我们尝试使用属性Orientation,如下所示:ItemsControl with horizontal orientation h-horizo​​ntal-orien ta tion

以下是一个例子:

 var itemsControl = new ItemsControl();    
 var factoryPanel = new FrameworkElementFactory(typeof(StackPanel));
 factoryPanel.SetValue(Panel.IsItemsHostProperty, true);

 factoryPanel.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);    
 var template = new ItemsPanelTemplate {VisualTree = factoryPanel};       
 itemsControl.ItemsPanel = template;