【问题标题】:Frame too large even with HeightRequest = "1"即使使用 HeightRequest =“1”,框架也太大
【发布时间】:2021-03-29 11:25:30
【问题描述】:

我创建了一个Frame,里面有一个网格,里面有一个Boxview和一个Image,但是即使我输入了HeightRequest: "1",框架仍然太大。 怎么可能?

  <Frame
        RelativeLayout.YConstraint="{ConstraintExpression
        Type=Constant,
        Constant=11}"
        RelativeLayout.XConstraint="{ConstraintExpression
        Type=Constant,
        Constant=310}"
        CornerRadius="100"
        HeightRequest="1"
        BackgroundColor="Transparent"
        xct:TouchEffect.NativeAnimation="True">
        <Frame.GestureRecognizers>
           <TapGestureRecognizer Tapped="Graph_Clicked"/>
        </Frame.GestureRecognizers>
        <Grid>
           <BoxView
                  Color="#404040"
                  CornerRadius="100"
                  Opacity="0.6"
                  Margin="-20"/>
           <Image               
                  Margin="-10"
                  Source="Chart.png"/> 
           </Grid>
    </Frame>

【问题讨论】:

  • 框架正在扩展以适应其内容。
  • 设置&lt;Frame VerticalOptions="Start"

标签: xaml xamarin.forms


【解决方案1】:

我创建了一个框架,里面有一个网格,里面有一个 Boxview 和一个图像,但是即使我输入了 HeightRequest: "1",框架仍然太大

根据 Jason 的意见,Frame 正在扩展以适应其内容。如果你想让frame变小,你只需要改变set image HeightRequest and WidthRequest samller,那么Frame会变小。

<Frame
            BackgroundColor="Transparent"
            CornerRadius="100"
            RelativeLayout.XConstraint="{ConstraintExpression Type=Constant,
                                                              Constant=100}"
            RelativeLayout.YConstraint="{ConstraintExpression Type=Constant,
                                                              Constant=0}">
            <Grid>
                <BoxView
                    CornerRadius="100"
                    Opacity="0.6"
                    Color="#404040" />
                <Image
                    HeightRequest="50"
                    Source="c11.png"
                    WidthRequest="50" />
            </Grid>
        </Frame>

【讨论】:

    【解决方案2】:

    删除边距 -(负数)。并且在 Xamarin.Forms 中请求了高度和宽度,但实际上并未设置。为控件设置vertical and horizontal 选项。然后设置HeightRequest 和WidthRequest。应该可以解决您的问题。

    <Frame
          RelativeLayout.YConstraint="{ConstraintExpression Type=Constant,  Constant=11}"
          RelativeLayout.XConstraint="{ConstraintExpression Type=Constant,  Constant=310}"
          CornerRadius="100"
          HeightRequest="100"
          BackgroundColor="Transparent">
                <Frame.GestureRecognizers>
                    <TapGestureRecognizer Tapped="Graph_Clicked"/>
                </Frame.GestureRecognizers>
                <Grid HorizontalOptions="Center" VerticalOptions="Center">
                    <BoxView
                      Color="#404040"
                      CornerRadius="10"
                      Opacity="0.6"/>
                    <Image   
                      Source="Chart.png"/>
                </Grid>
            </Frame>
    

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      相关资源
      最近更新 更多