2012-06-28 23 views

Respuesta

12

El color Background solo se puede configurar para todo el Grid mediante la propiedad Background:

<Grid Background="Red" /> 

O si quieres que establece para las células individuales, es necesario agregar un elemento a la celda que tiene su Background conjunto de propiedades.

En cuanto a Borders, un Grid solo contiene la propiedad ShowGridLines, que se puede usar para mostrar líneas de puntos delgadas que no se pueden diseñar.

por MSDN:

Sólo líneas de puntos están disponibles porque esta propiedad está pensado como una herramienta de diseño a problemas de diseño de depuración y no está destinado para su uso en la calidad del código producción. Si desea líneas dentro de una cuadrícula, aplique estilo a los elementos dentro de la cuadrícula para que tengan bordes.

Así que con el fin de añadir bordes a su cuadrícula, hay que añadir Border elementos o controles que contienen una Border a las celdas de cuadrícula, y el estilo de esos elementos.

Pero hay una alternativa. This blog post describe cómo puede ampliar la clase de cuadrícula para crear una cuadrícula personalizada que tenga propiedades para las líneas Grid. Lo he usado successfully in the past cuando quería renderizar líneas de cuadrícula, pero no quería llenar cada celda con un objeto.

<my:CustomGrid ShowCustomGridLines="True" 
       GridLineBrush="Blue" 
       GridLineThickness="1"> 
0

depende de lo que pretendas hacer con esta cuadrícula pero supongo que deseas llenar las celdas de la cuadrícula con controles.

Deberá establecer las propiedades de Fondo y Borde (Trazo) en los controles o encapsular cada uno de sus controles en un Borde primero.

Pero, por supuesto, si desea el mismo color de fondo para cada celda, configure el fondo de la cuadrícula. :)

espero haber respondido bien.

27

Aquí hay un truco que parece funcionar bien. Si coloca un elemento de fondo en las filas/columnas junto con los elementos que normalmente colocaría allí, actuará como fondo. Solo tendrá que importar el orden de los elementos en el XAML (los elementos aparecen al aumentar el orden Z), o establecer el Panel. Ordene en consecuencia.

<Window x:Class="gridBackground.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
     <Border Background="Red" /> 
     <Border Grid.Row="2" Grid.Column="1" Background="Red" />   
     <Border Grid.Row="1" Background="LightBlue" />  
     <Border Grid.Row="2" Background="Orange" /> 
     <Border Grid.Row="0" Grid.Column="1" Background="Orange" /> 
     <TextBlock Grid.ColumnSpan="2" Grid.Row="1" Text="Here is some more text" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
     <TextBlock Grid.ColumnSpan="2" Text="Here is some text" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
     <TextBlock Grid.ColumnSpan="2" Grid.Row="2" Text="Here is even more text" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
    </Grid> 
</Window> 

Parece que este:

enter image description here

Cuestiones relacionadas