c# - 在 WPF 中,有没有办法制作像 Grid 一样具有对齐列的 StackPanel?

标签 c# .net wpf grid stackpanel

例如我可以这样做:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Width="Auto">
        <RowDefinition Width="Auto">
        <RowDefinition Width="Auto">
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0" Grid.Column="0">Header 1</TextBlock>
    <TextBox Grid.Row="0" Grid.Column="1" MaxLines="1" />
    <Button Grid.Row="0" Grid.Column="2">Send</Button>
    <Button Grid.Row="0" Grid.Column="3">Save</Button>
    <TextBlock Grid.Row="1" Grid.Column="0">Header 2</TextBlock>
    <TextBox Grid.Row="1" Grid.Column="1" MaxLines="1" />
    <Button Grid.Row="1" Grid.Column="2">Send</Button>
    <Button Grid.Row="1" Grid.Column="3">Save</Button>
    <TextBlock Grid.Row="2" Grid.Column="0">Header 3</TextBlock>
    <TextBox Grid.Row="2" Grid.Column="1" MaxLines="1" />
    <Button Grid.Row="2" Grid.Column="2">Send</Button>
    <Button Grid.Row="2" Grid.Column="3">Save</Button>
</Grid>

或者我可以这样做:

<StackPanel>
    <StackPanel Orientation="Horizontal">
        <TextBlock>Header 1</TextBlock>
        <TextBox MaxLines="1" />
        <Button>Send</Button>
        <Button>Save</Button>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <TextBlock>Header 2</TextBlock>
        <TextBox MaxLines="1" />
        <Button>Send</Button>
        <Button>Save</Button>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <TextBlock>Header 3</TextBlock>
        <TextBox MaxLines="1" />
        <Button>Send</Button>
        <Button>Save</Button>
    </StackPanel>
<StackPanel>

除了我希望能够像在 StackPanel 中一样轻松地操作行(添加新行、移动行等),同时像在 Grid 中一样保持列正确对齐。

最佳答案

您可以将许多单行 Gridssize sharing 一起使用在列上。如果没有任何控件,它会变得冗长,因此您可以将一些逻辑(例如创建列和分配 Grid.Column)封装在 ItemsControlattached property 的派生中。例如。

关于c# - 在 WPF 中,有没有办法制作像 Grid 一样具有对齐列的 StackPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12177749/

相关文章:

.net - Visual Studio 2002中的编译器选项?

c# - 解析更新单个控制台行的进程的输出

c# - 列表框未使用绑定(bind)填充

c# - WPF 上下文菜单命令绑定(bind)

c# - 您将如何使用 Scala 的异步使多个异步请求超时?

c# - 挣扎于线程?

c# - 蜜蜂蜇伤 vs. WebControls

c# - 安装窗口服务 System.Security.SecurityException 时出错

c# - 从资源中读取文件并将其写入 C# 中的磁盘

c# - 许多条目带有 OnItemsChanged(),如何删除旧条目