【问题标题】:Why doesn't my StackPanel's background color stretch to fill the full width?为什么我的 StackPanel 的背景颜色没有拉伸以填充整个宽度?
【发布时间】:2012-04-08 08:48:22
【问题描述】:

我有一个带有背景画笔的 StackPanel,它包含一个按钮。它包含在比按钮更宽的 Grid 中。

令人沮丧的是,背景只有按钮那么宽。我可以在按钮的边缘看到它。所以我最终在我的按钮旁边有一个默认灰色的宽条,它周围有我的背景颜色边框。

<StackPanel Visibility="Visible" HorizontalAlignment="Right" Background="{StaticResource qtyBg}">
    <Button x:Name="bttnQtyEditKeys" Content="EDIT KEYPAD" Visibility="Visible" Click="bttnQtyEditKeys_Click"/>
</StackPanel>

我可以通过在它周围包裹一个边框并设置边框的背景画笔来修复它。

这是一个 hack,所以它让我很恼火。有没有其他方法可以让 StackPanel 的背景不傻?

【问题讨论】:

  • 我不认为在这里使用边框是一种技巧
  • 我认为是的,因为我不希望这个组件实际上有边框。

标签: wpf background stackpanel


【解决方案1】:

问题不在于您的背景,而在于您的 StackPanel。你的背景很好,是你的 StackPanel 没有填满可用空间。

您需要在 StackPanel 上将 Horizo​​ntalAlignment 和 VerticalAlignment 设置为 Stretch。

这对我来说很好用:

<Grid>
    <StackPanel Visibility="Visible" HorizontalAlignment="Stretch" Background="blue">
        <Button x:Name="bttnQtyEditKeys" HorizontalAlignment="Right" Content="EDIT KEYPAD" Visibility="Visible" Click="bttnQtyEditKeys_Click"/>
    </StackPanel>
</Grid>

【讨论】:

  • 不好,因为它把我的按钮放在左边。我想要它在右边。
  • 似乎没有任何效果。它仍然在左边。
  • @GrantBirchmeier:我已经编辑了我的答案。这段代码对我来说很好。如果它对你不起作用,那么还有一些你没有告诉我们的事情发生。
  • 嗯。可能是我不知道的一种预先存在的风格。我需要在一个“干净”的项目上尝试一下。谢谢。
  • 该死,看来你是对的。在“干净”的项目中,它确实可以正常工作。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
相关资源
最近更新 更多