2013-02-16 2 views
0

Возможно ли, что в XAML можно выделить строки или столбцы StackPanel (или любой контейнер в целом) с строками? Так что это выглядит, например, как шахматная доска? А также когда пользователь изменяет размер окна, панель также изменит размер.XAML StackPanel разделен

ответ

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> 

За полный пансион можно сохранить печатая и использовать ItemsControl привязан к какой-то коллекции 64 элемента с шаблоном для линий:

<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> 

Существует также множество возможных вариантов в зависимости от того, что именно вы хотите получить из сетки.

Смежные вопросы