【问题标题】:StackPanel , Border won't draw properly in UWP?StackPanel ,边框在 UWP 中无法正确绘制?
【发布时间】:2021-06-18 14:08:30
【问题描述】:
<StackPanel  BorderBrush="LightGray" Width="200" Height="32" BorderThickness="1">
    <TextBlock Text="hai" FontSize="14" Height="20" LineHeight="20"   Margin="12 6 0 6"/>
</StackPanel>

当我将 TextBlock 边距设置为 (12 6 0 6) 时,StackPanel 的底部边框将无法正确呈现。 如果我将边距设置为 (12 6 0 0),它工作正常。我不知道这里到底发生了什么。谁能解释一下?

【问题讨论】:

  • 我猜它不适合面板的大小。尝试将Height 更改为MinHeight
  • 我不能改变高度,它是固定的。我需要解释吗?

标签: uwp uwp-xaml


【解决方案1】:

原因是TextBlock.Heightmargin.Topmargin.Bottom的总和超过了Stackpanel内部空间的高度。

在您的场景中,您将StackPanel.BorderThickness设置为1,这导致Stackpanel的内部高度为30。如果您将margin设置为(12 6 0 6),则TextBlock.Height和margin.Top和margin.Bottom 为 32,超过了 30,所以 textblock 覆盖了 stackpanel 的边框底部。

例如,如果您设置 StackPanel. BorderThickness 为 4,如下:

<StackPanel  BorderBrush="LightGray" Width="200" Height="32" BorderThickness="4">
    <TextBlock Text="hai" FontSize="14" Height="20" LineHeight="20"   Margin="12,2,0,2"/>
</StackPanel>

可以看到,内部高度是24,textblock高度是20,所以我们需要设置margin.Top和margin.Bottom之和小于4,比如(12 2 0 2), (12 2 0 1),(12 2 0 0)

【讨论】:

    猜你喜欢
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多