MaterialDesign ColorZone高度尺寸

时间:2016-10-03 10:03:43

标签: c# wpf material-design

我不知道为什么,但我的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>
编辑:这是高度,为什么这不占用所有空间?它只在我在ColorZone

中写入宽度时才会这样做

enter image description here

1 个答案:

答案 0 :(得分:2)

我将您的代码复制到我的项目中。我认为有几件事可能会导致你的问题。

enter image description here

  1. 你的色域中有填充物。如果您没有颜色区域,则不会有16个填充点。这将导致布局在必须显示的两个方向上都有额外的32个空间点,从而增加了大小。这是一个规模增加,但不会减少。
  2. 请注意颜色区域如何伸展以填充其内容,您是否期望这种行为?我不确定它是否会导致你期望的尺寸变化,但这可能是因为事情看起来不像你期望的那样。
  3. 如果没有更多信息(您希望它看起来像什么,究竟是什么问题),这是我能提供的最佳答案。

    编辑:感谢屏幕截图,它完美地阐明了事情。

    默认的ColorZone对齐方式是左上角。我不知道为什么,因为几乎在所有情况下我都发现我将它对齐以拉伸以填充所有可用空间,就像大多数其他WPF容器一样(网格,堆栈面板等)。

    您需要添加以下内容:

    HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
    

    到您的色区。或者,在App.xaml资源中,您可以为ColorZone创建一个通用样式,并将这些作为默认值。我真的应该用我的应用来解决这个问题:

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