1

У меня есть сетка с 3-мя столбцами:управления Выровнять справа в сетке

<Grid.ColumnDefinitions> 
<ColumnDefinition Width="Auto" /> 
<ColumnDefinition Width="*" /> 
<ColumnDefinition Width="Auto" /> 
</Grid.ColumnDefinitions> 

Я хочу, чтобы последний столбец выравнивания справа, рядом с краем экрана. В настоящее время третий столбец происходит вскоре после второго. Я не хочу пропускать ширину в пикселях, а не автоматический расчет.

Я попытался использовать элемент в свойствах третьего столбца HorizontalAlignment = «Right», но, к сожалению, он не работает.

+0

Содержит ли ваша сетка весь экран? –

+0

Да, это диапазон для всего контейнера – Cieja

+0

Я не понимаю ваш вопрос, так что из вас код не работает, как ожидалось? Можете ли вы опубликовать скриншот, который показывает, как он выглядит, и второе изображение, показывающее, как оно должно выглядеть? – Koopakiller

ответ

0

Если у вас есть те же элементы управления внутри сетки, вы можете назначить стиль для всех из них в <Grid.Resources>, установив свойство HorizontalAlignment, только если значение свойства Grid.Column равно 2 (с триггерами). Но это еще проще пробегаем по всем детям, и проверять свойство столбца каждого и затем установить выравнивание, как

foreach (Control ctrl in yourGrid.Children) { 
    if(Grid.GetColumn(ctrl) == 2) ctrl.HorizontalAlignment = HorizontalAlignment.Right; 
} 
0

Поскольку ваш последний столбец имеет Auto ширину, установив HorizontalAlignement содержания в Right должно не требуется. Мое предположение было бы либо

  1. ваш Grid не имеет HorizontalAlignement значение Stretch (которое должно быть по умолчанию), или
  2. независимо содержит GridStackPanel может быть?) Не дает ему полную ширину ,

Я был уверен, могу ли я проверить остальную часть XAML. Сначала проверьте эти две вещи. Если это не поможет, отправьте остальную часть своего XAML.

1

Если ваша сетка находится внутри стековой панели, независимо от того, что вы делаете, она будет только изменять ее размер до ширины Stackpanel.

Если ваши последние определения столбцов являются Авто, вы не можете выровнять его справа от экрана. Измените второе определение на Авто и последнее на *.

+1

А также, если ваша сетка находится внутри DataTemplate, элемент управления, использующий этот шаблон, должен быть установлен, чтобы HorizontalContentAlignment растягивался. –