1

我需要在 C# 代码中将方向设置为 ListBox。我需要与此 XAML 代码相同的结果:

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

我有这个:

ListBox elementListBox = new ListBox();
StackPanel pomocnyStackPanel = new StackPanel();
pomocnyStackPanel.Orientation = Orientation.Horizontal;

如何添加“ItemsPanel”?

4

2 回答 2

2

以前可以使用FrameworkElementFactory,但现在已弃用,他们建议 XamlReader改用:

elementListBox.ItemsPanel = (ItemsPanelTemplate)XamlReader.Parse("<ItemsPanelTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><StackPanel Orientation=\"Horizontal\"/></ItemsPanelTemplate>");
于 2013-09-11T09:13:00.733 回答
1

我不是 100% 确定,但我认为你想要这样的东西:

FrameworkElementFactory factory = new FrameworkElementFactory(typeof(StackPanel));
factory.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);
ItemsPanelTemplate itemsPanelTemplate = new ItemsPanelTemplate(factory);
ListBox elementListBox = new ListBox();
elementListBox.ItemsPanel = itemsPanelTemplate;

更新>>>

是的,我刚刚对其进行了测试,它按预期工作。

于 2013-09-11T09:11:48.383 回答