水平对齐 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-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;
我正在寻找一种方法来设置 ItemsControl
中项目的对齐方式,以便它们不是从上到下(默认)而是从左到右定位。
我以为有一个属性可以很容易地设置,比如
ItemsControl crtl = new ItemsControl;
...
ctrl.ContentAlignment = ContentAlignment.Horizontal; // does not exist
不过好像不是这样的。 XAML 中有无数示例可以实现此目的(通常它们使用样式或模板或类似的东西),但我在普通 C# 代码中找到了 none。而且我也不知道如何将 xaml 语句转换为 C# 代码。
谁能给个提示?
让我们尝试使用 属性 方向,如下所示: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;