2016-10-03 2 views
0

Я не знаю почему, но мой ColorZone сам меняет высоту. Когда у меня нет materialDesign:ColorZone, размер сетки со всем моим элементом имеет размер "*".MaterialDesign ColorZone Размер высоты

Но когда я добавляю ColorZone, размер уменьшается ... Знаете ли вы, как это исправить?

<Grid Grid.Column="1" Visibility="Visible" > 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <materialDesign:ColorZone Padding="16" materialDesign:ShadowAssist.ShadowDepth="Depth2" 
             Mode="PrimaryLight"> 
      <Grid> 
       <!-- ALL MY ELEMENT, SIZE CHANGE COZ OF COLORZONE --> 
      </Grid> 
     </materialDesign:ColorZone> 
    </Grid> 

EDIT: Это высота, почему это не занимает все пространство? Он делает только тогда, когда я пишу ширину в ColorZone

enter image description here

+0

Некоторые скриншоты были бы полезны. Какой размер уменьшается, все? Строки в сетке? У вас есть только одна строка в вашей сетке? – Joe

ответ

1

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

enter image description here

  1. У вас есть отступы в вашей цветовой зоне. Если у вас не было цветовой зоны, у вас не было бы 16 пунктов заполнения. Это заставит макет иметь дополнительные 32 точки пространства в обоих направлениях, которые он должен отображать, увеличивая размер. Это увеличение размера, но не уменьшение.
  2. Обратите внимание, как цветовая зона не растягивается, чтобы заполнить ее содержимое, ожидаете ли вы такого поведения? Я не уверен, может ли это быть причиной изменения размера, которое вы ожидаете, но это может быть причина, по которой вещи не выглядят так, как вы ожидаете.

Без дополнительной информации (как вы хотите, чтобы это выглядело, именно в чем проблема), это лучший ответ, который я могу предоставить.

Редактировать: Спасибо за скриншот, что отлично проясняет ситуацию.

Выравнивание по умолчанию ColorZone находится сверху слева. Я не знаю, почему, потому что почти в каждом случае я обнаружил, что выравниваю его, чтобы растянуть, чтобы заполнить все свободное пространство, как и большинство других контейнеров WPF (сетка, панель стеллажей и т. Д.).

Вам нужно добавить следующее:

HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 

к вашему colorzone. В качестве альтернативы, в ваших ресурсах App.xaml вы можете создать общий стиль для ColorZone и использовать их как значения по умолчанию. Я действительно должен обойти это с моей заявкой:

<Style TargetType="materialDesign:ColorZone"> 
    <Setter Property="HorizontalAlignment" Value="Stretch"/> 
    <Setter Property="VerticalAlignment" Value="Stretch"/> 
</Style> 
+0

Я отредактировал свою проблему. Да, ваш пункт 2 - именно то, что я ищу. Я не знаю, почему, но это не заполняет все пространство. – Destunk

+0

Это проясняет ситуацию, см. Мое редактирование. – Joe

+0

Это прекрасно! Почему значение Stretch делает это? Я не понимаю – Destunk

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