c# - StackPanel 的方向在 ItemsControl (WPF) 中不起作用

标签 c# wpf xaml

我的 WPF 应用程序正在生成动态按钮。我想水平显示这些按钮。我为此编写了代码。代码工作正常,但不是在水平方向显示按钮,而是在垂直方向显示所有按钮!我还设置了 StackPanel 的 Orientation!

谁能解决我的问题?

我的代码是:

  <Grid>
    <dxlc:ScrollBox>
        <ItemsControl x:Name="Buttonslist">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Button Content="{Binding Text}" Tag="{Binding Text}" x:Name="New" Margin="5,0,5,0" Click="New_Click"  />
    </StackPanel>
    </DataTemplate>
    </ItemsControl.ItemTemplate>
    </ItemsControl>

    </dxlc:ScrollBox>
    </Grid>

最佳答案

您实际上是在为每个项目/按钮创建一个 StackPanel。要只为所有项目获取一个,您需要将控件的 ItemsPanel 设置为 StackPanel。

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

<ItemsControl.ItemTemplate>
    <DataTemplate>
        <Button Content="{Binding Text}" Tag="{Binding Text}" x:Name="New" Margin="5,0,5,0" Click="New_Click" />
    </DataTemplate>
</ItemsControl.ItemTemplate>

关于c# - StackPanel 的方向在 ItemsControl (WPF) 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279602/

相关文章:

c# - 如何设置多个viewbox最大的尺寸?

c# - 如何将方形图像蒙版为圆角图像?

c# - 使用具有复杂类型的设置

c# - C# 代码的 MarkdownSharp 和 GitHub 语法

C# EF Deep Lambda 非重复计数查询

wpf - 为什么只有 Silverlight for WP7 有合成线程?

c# - 有没有办法在C#中实现 "void func(out params object[] parameters)"

c# - 如何在代码隐藏中展开 WPF TreeView 的所有节点?

c# - 无法加载文件或程序集 'System.Windows.Interactivity'

c# - Windows RT - 按钮单击事件是否在 UI 线程上执行?