【问题标题】:How to make a label to take entire Frame element space如何使标签占据整个 Frame 元素空间
【发布时间】:2022-01-11 06:23:36
【问题描述】:

我有一个以 Frame 元素作为单元格的网格。在一些框架元素中,有标签元素。问题是标签只能延伸到它的内容。

我的目标是让标签占据其父元素(框架)的整个空间。 我尝试将 VerticalOptions 和 Horizo​​ntalOptions 属性设置为“StartAndExpand”和“FillAndExpand”均无济于事

<Grid>
    <Frame Grid.Row="0" Grid.Column="0">
            <Label Text="Hello" />
    </Frame>
 ...
</Grid>

谢谢!

编辑:澄清一下,我想拉伸标签本身而不是它的文本。

【问题讨论】:

  • 您希望文本本身放大以适应其容器吗?
  • 澄清Jason的问题:如果你在Label上设置BackgroundColor,你会看到Label 占据了整个框架。不幸的是,Xamarin Forms 没有“自动缩放”text 的机制,所以 letters H e l l o don'不会变大。您必须将FontSize 设置为某个数字,以获得更大的文本。 AFAIK 是自动执行此操作的唯一方法,它涉及编写自定义 c# 代码。谷歌xamarin forms automatically scale text to fit 查找不同的人做了什么。不幸的是,解决这个问题确实像那些答案所示的那样复杂......
  • ...也许那个google搜索会找到一个插件,使它更容易。我没有看到任何“官方”xamarin 或 xamarin 社区插件,但也许我错过了一些东西。
  • 设置框架填充=0?
  • 感谢大家的回复!将框架填充设置为 0 以及 FillAndExpand 的水平和垂直选项解决了这个问题。 @Shaw,如果您将其作为答案,我可以将其标记为已解决。

标签: xamarin xamarin.forms


【解决方案1】:

由于Frame 有一个默认的padding,只需像下面这样手动设置它。

<Frame padding="0">
    <....>
</Frame>

另外,有时带有长文本的标签在 Frame 中的行为不正确,
一种解决方法是用StackLayout 包装标签。

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多