我正在寻找一种方法来设置ItemsControl
中项目的对齐方式,使它们不是从上到下(默认),而是从左到右。
我认为有一个可以轻松设置的属性,比如
ItemsControl crtl = new ItemsControl;
...
ctrl.ContentAlignment = ContentAlignment.Horizontal; // does not exist
但似乎事实并非如此。在XAML中有无数的例子来实现这一点(通常他们使用样式或模板或类似的东西),但我在普通的C#代码中找不到。而且我也不知道如何将xaml语句转换为C#代码。
任何人都可以提示吗?
答案 0 :(得分:3)
让我们尝试使用属性Orientation,如下所示:ItemsControl with horizontal orientation h-horizontal-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;