框架不遵守 HeightRequest

9

请问为什么Frame不遵循HeightRequestWidthRequest属性?

在其他控件中使用这些属性时,它们的效果是符合预期的。

例如,在此XAML中,我使用了一个Frame和一个BoxView

<StackLayout Orientation="Horizontal"
             HorizontalOptions="CenterAndExpand"
             Padding="10">
    <Frame VerticalOptions="Center"
           HeightRequest="5"
           WidthRequest="5"
           BackgroundColor="Red"/>
    <BoxView VerticalOptions="Center"
             HeightRequest="5"
             WidthRequest="5"
             Color="Blue"/>
</StackLayout>

结果如下:

xaml sample

Frame的尺寸和方框的尺寸之间存在很大差异,但实际上不应该有这种情况发生。


4
如果您将Frame的Padding设置为“0”,会发生什么?因为Frame默认具有“20”个填充。 - VahidShir
1个回答

29

3
我也曾遇到这个问题,谢谢。默认补白为20... 真奇怪。 - Gerry
@Gerry 是的,我也不确定为什么他们会这样决定。但我只能猜测他们没有改变它的原因是因为如果他们更新Xamarin.Forms,那将影响很多只使用默认值的应用程序。 - sme
3
每次我使用框架时都会忘记这个愚蠢的默认设置。 - Jammer
我设置了默认样式(我还为网格行/列间距做了类似的设置)<Style TargetType="Frame" ApplyToDerivedTypes="True"><Setter Property="Padding" Value="0" /></Style> - rob_james
2
@Jammer,你不应该记得它。像这样的东西在Xamarin中让我非常疯狂。 - Jeff
这也让我感到非常疯狂。Xamarin.Forms 的另一个令人沮丧的事情是,当水平/垂直选项设置为“填充”和“填充”是默认设置时,它会忽略 heightRequest 和 WidthRequest!因此,您可以费尽周折地设置特定的高度和宽度,但 XF 将会忽略您的设置。如果您想手动设置大小,您还必须记得覆盖布局选项的默认值。 - Sean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接