【问题标题】:MaterialDesign ColorZone Height sizeMaterialDesign ColorZone 高度尺寸
【发布时间】:2016-10-03 10:03:42
【问题描述】:

我不知道为什么,但是我的 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 中写入宽度时才会这样做

【问题讨论】:

  • 一些截图会很有帮助。什么大小在减少,整个事情?网格中的行?您的网格中只有一行吗?

标签: c# wpf material-design


【解决方案1】:

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

  1. 您的颜色区域中有填充。如果您没有颜色区域,则不会有 16 个填充点。这将导致布局在它必须显示的两个方向上都有额外的 32 点空间,从而增加了大小。这是尺寸的增加,而不是减少。
  2. 请注意颜色区域不会拉伸以填充其内容,您是否期待这种行为?我不确定它是否会导致您预期的尺寸变化,但这可能是事情看起来不像您预期​​的一个原因。

如果没有更多信息(您希望它是什么样子,究竟是什么问题),这是我能提供的最佳答案。

编辑:感谢您的屏幕截图,它完美地阐明了问题。

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

您需要添加以下内容:

HorizontalAlignment="Stretch" VerticalAlignment="Stretch"

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

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

【讨论】:

  • 我编辑了我的问题。是的,您的第 2 点正是我想要的。我不知道为什么,但这并没有填满整个空间
  • 这太完美了!为什么价值 Stretch 这样做?我不明白
  • 默认为 Horizo​​ntalAlignment="Left" 使其在左侧向上弯曲,而 VerticalAlignment="Top" 使其在顶部向上弯曲。因此,它使自己成为最小的。这些布局选项可以与任何东西一起使用(尝试将它们设置在颜色区域内的网格上,你会得到类似的行为,但只是内容)。 Stretch 告诉它填充所有可用空间。
猜你喜欢
  • 2021-01-22
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 2016-06-07
  • 2013-02-12
  • 1970-01-01
相关资源
最近更新 更多