2013-09-08 4 views
1

Я хотел бы добавить границу вокруг элементов в WPF UniformGrid. То, что я пробовал:Как добавить границу в ячейки UniformGrid

<Window.Resources> 
    <DataTemplate x:Key="GridCell"> 
     <Border BorderBrush="DarkGray" BorderThickness="5"></Border> 
    </DataTemplate> 
</Window.Resources> 

... и ...

<UniformGrid Name="grid"> 
    <ItemsControl ItemTemplate="{StaticResource GridCell}"></ItemsControl> 
</UniformGrid> 

Это не работает (не отображается граница). Я хотел бы иметь каждый ребенок UniformGrid (кнопки, которые создаются программно, поэтому они не появляются здесь), чтобы иметь границу. Он должен выглядеть, ну, сетка ... с горизонтальными и вертикальными сетками, определяющими строки и столбцы.

+0

См [это] (http://stackoverflow.com/questions/8541607/assigning-border-to-every-grid-row) вопрос, @Carlo ответ о 'BorderGrid'. 'DataTemplate' предполагает, что его содержимое известно заранее, я думаю, что в этом случае он не работает. –

+0

Я бы посмотрел в ItemsContainerStyle –

ответ

3
<Grid> 
     <ItemsControl ItemsSource="{Binding NumericalPatches}" > 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <UniformGrid Rows="7" Columns="7"/> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Border BorderBrush="DimGray" BorderThickness="3"> 
         <Grid> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="Auto"/> 
           <ColumnDefinition Width="Auto"/> 
          </Grid.ColumnDefinitions> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto"/> 
           <RowDefinition Height="Auto"/> 
          </Grid.RowDefinitions> 

          <TextBlock Grid.Row="0" Grid.Column="0" Margin="5" Text="{Binding StringFormat=F4,Path=Red}" FontSize="14" Foreground="Red"/> 
          <TextBlock Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding StringFormat=F4,Path=Green}" FontSize="14" Foreground="Green"/> 
          <TextBlock Grid.Row="1" Grid.Column="0" Margin="5" Text="{Binding StringFormat=F4,Path=Blue}" FontSize="14" Foreground="Blue"/> 
          <TextBlock Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding StringFormat=F4,Path=Chroma}" FontSize="14" Foreground="White"/> 

         </Grid> 
        </Border> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </Grid> 
Смежные вопросы