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

Align items in ItemsControl horizontally (no xaml)

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

我以为有一个属性可以很容易地设置,比如

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

不过好像不是这样的。 XAML 中有无数示例可以实现此目的(通常它们使用样式或模板或类似的东西),但我在普通 C# 代码中找到了 none。而且我也不知道如何将 xaml 语句转换为 C# 代码。

谁能给个提示?

让我们尝试使用 属性 方向,如下所示: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;