2016-04-04 8 views
1

Я пытаюсь использовать определения строки/столбца сетки в приложении wpf. На данный момент мне нужно реализовать представление списка внутри GroupBox. Здесь мне нужно игнорировать определения столбцов, которые я устанавливаю в верхней части представления.Wpf - Сетка с использованием определения строки и столбца - Как игнорировать столбцы для некоторых строк

строк и столбцов определения:

 <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="260" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="250" /> 
     <ColumnDefinition Width="20" /> 
     <ColumnDefinition Width="180" /> 
     <ColumnDefinition Width="20" /> 
     <ColumnDefinition Width="180" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

Здесь вы видите, у меня есть rowDefinition с высотой 260. Это должно содержать мой список вид. Проблема в том, что он внутри столбцов, которые я сделал, и поэтому он не займет всего места. Есть ли какой-то параметр, чтобы эта строка игнорировала столбцы, которые я установил? Я все еще хочу, чтобы столбцы были использованы для других строк.

Здесь вы видите картину того, как это выглядит:

enter image description here

Надежда кто-то может помочь, хороший день.

ответ

4

Просто используйте прилагаемое свойство Grid.ColumnSpan:

<ListView Grid.ColumnSpan="6"/> 

Это расширит ваши ListView для 6 колонок.

Простые советы о вашем пользовательском интерфейсе:

Я предлагаю вам создать вам изменяемого XAML, не статичны. Я имею в виду, это не хорошо:

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="260" /> 
    <RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="250" /> 
    <ColumnDefinition Width="20" /> 
    <ColumnDefinition Width="180" /> 
    <ColumnDefinition Width="20" /> 
    <ColumnDefinition Width="180" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 

Тем не менее, лучше:

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="3*" /> 
    <RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*" /> 
    <ColumnDefinition Width="0.5*" /> 
    <ColumnDefinition Width="2*" /> 
    <ColumnDefinition Width="0.5*" /> 
    <ColumnDefinition Width="2*" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 

Это дает изменяемый интерфейс (XAML) на любом дисплее.

+0

Спасибо за ваш быстрый ответ. Попробуй это как можно скорее! – Mandersen

1

Вы можете установить Grid.ColumnSpan="6" в свой список. Он будет расширяться в строке.

<ListView Grid.ColumnSpan="6"/> 
1

зависит от того, как вы хотите отображать список.

вы можете добавить еще одну сетку, чтобы быть в безопасности, что вы захотите добавить что-то позже в эту строку.

<Grid grid.Row="6" Grid.Column="0" Grid.ColumnSpan="6"> 
    <ListView> </ListView> 
</Grid>