【问题标题】:Is there a better way to size scaled elements in Xamarin Forms XAML?是否有更好的方法来调整 Xamarin Forms XAML 中缩放元素的大小?
【发布时间】:2016-08-01 14:56:13
【问题描述】:

这是来自 Xamarin Forms Android 应用程序的 XAML 片段。我想知道是否有人知道一种不那么巴洛克式的定位和调整全宽Slider 的方式,它已被缩放为两倍大小?

<Grid>
  <Grid.RowDefinitions><RowDefinition Height="auto"/></Grid.RowDefinitions>
  <Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="2*"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
  <Slider Grid.Row="0" Grid.Column="1"
    HorizontalOptions="FillAndExpand"
    Scale="2.0" />
</Grid>

这是为了解决 XF 中的两个奇怪的限制/错误:

  1. Scale 参数被布局忽略,因此滑块的大小被调整为可用空间的两倍并被剪裁。

  2. Padding 参数不接受相对值,因此无法指定我希望左右填充占据可用总空间的 25%。绝对数字会在不同的屏幕分辨率甚至屏幕旋转时中断。

当我只需要一个单元格时,必须为此使用Grid 似乎太过分了!

【问题讨论】:

    标签: android xamarin.forms scale


    【解决方案1】:

    您可以使用AbsoluteLayout 使代码更简单,结果将相同:

    <AbsoluteLayout>
        <Slider
            AbsoluteLayout.LayoutFlags="All"
            AbsoluteLayout.LayoutBounds=".5, .5, .5, .5"
            Scale="2.0">
        </Slider>
    </AbsoluteLayout> 
    

    【讨论】:

    • 谢谢!这样看起来确实更好,而且 AbsoluteLayout 有一些有趣的功能。
    • 但是 XF 的设计很奇怪!谁会想到将 'AbsoluteLayout' 用于 relative 布局!为什么相对值不能适用于所有相关参数?谁不想在布局中考虑“比例”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多