0

XAML 中是否可以在 StackPanel 控件(或任何一般容器)中用线分隔行和列?所以它看起来像一个棋盘?而且当用户调整窗口大小时,面板也会调整大小。

4

1 回答 1

2

唯一一个绘制线条的内置Panels函数是Grid带有ShowGridLines="True"集合的,但绘制的线条只是一种难看的虚线,无法更改,实际上仅适用于调试目的。

要绘制自己的线条,您可以在每个单元格中添加相同的边框,或者如果您希望它们在整个布局中延伸,则可以在每一行或每一列中添加相同的边框。进行棋盘布局的最简单方法是使用UniformGrid

<UniformGrid Rows="2" Columns="2">
    <Border BorderBrush="Gray" BorderThickness="1" />
    <Border BorderBrush="Gray" BorderThickness="1" />
    <Border BorderBrush="Gray" BorderThickness="1" />
    <Border BorderBrush="Gray" BorderThickness="1" />
</UniformGrid>

对于一个完整的板,您可以保存键入并使用绑定到一些 64 项集合的 ItemsControl 以及行的模板:

<ItemsControl ItemsSource="{Binding ListOf64Items}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Border BorderBrush="Gray" BorderThickness="1"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Rows="8" Columns="8"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

也有很多可能的变化,这取决于你到底想从网格中得到什么。

于 2013-02-16T19:13:42.563 回答