如何在按钮上使用 Scale= 来缩小按钮并保持紧密的间距?

问题描述 投票:0回答:1

当我在按钮上使用

Scale=
使其变小时,间距会增加。

例如:
这显示同一行上的按钮按照我想要的方式间隔。

<ScrollView Orientation="Both">
    <VerticalStackLayout Padding="7,7" Spacing="2">
        <HorizontalStackLayout Margin="0" Spacing="2">
            <Button Text="Show Scans" HorizontalOptions="Start"     Scale="1.0" />
            <Button Text="Sync Scans" HorizontalOptions="Start"     Scale="1.0" />
            <Button Text="Export Scans" HorizontalOptions="Start"   Scale="1.0" />
        </HorizontalStackLayout>
    </VerticalStackLayout>
</ScrollView>

当我将按钮

Scale
设置得较小时,它可以工作,但间距会增加。

<ScrollView Orientation="Both">
    <VerticalStackLayout Padding="7,7" Spacing="2">
        <HorizontalStackLayout Margin="0" Spacing="2">
            <Button Text="Show Scans" HorizontalOptions="Start"     Scale="0.5" />
            <Button Text="Sync Scans" HorizontalOptions="Start"     Scale="0.5" />
            <Button Text="Export Scans" HorizontalOptions="Start"   Scale="0.5" />
        </HorizontalStackLayout>
    </VerticalStackLayout>
</ScrollView>

如何使用 Scale 来获得这个间距 < 1.0?

enter image description here

注意。所有这些按钮布局的右侧都有更多空间,因此这与较大按钮填满的行无关。

我阅读了有关按钮的所有内容并进行了搜索,但找不到特定于比例间距的答案< 1.0.

c# maui scale
1个回答
0
投票

我同意杰森的评论。虽然您可以尝试将比例因子放入

HorizontalStackLayout
中,如下面的 XAML 所示,但问题是左对齐不会得到补偿。

正如您所观察到的,

Button
可能有一个默认样式,包括高度和宽度的最小值,因此您也必须明确这一点。

scaled using Font

<ScrollView>
    <VerticalStackLayout
        Padding="0,0"
        Spacing="25">
        <Image
            Source="dotnet_bot.png"
            HeightRequest="185"
            Aspect="AspectFit"
            SemanticProperties.Description="dot net bot in a race car number eight" />

        <VerticalStackLayout Padding="7,7" Spacing="2" >
            <HorizontalStackLayout Margin="0" Spacing="2">
                <Button Text="Show Scans" HorizontalOptions="Start"     Scale="1.0" />
                <Button Text="Sync Scans" HorizontalOptions="Start"     Scale="1.0" />
                <Button Text="Export Scans" HorizontalOptions="Start"   Scale="1.0" />
            </HorizontalStackLayout>
        </VerticalStackLayout>

        <VerticalStackLayout Padding="7,7" Spacing="2">
            <HorizontalStackLayout Spacing="2" Scale="0.5" HorizontalOptions="Start">
                <Button Text="Show Scans" HorizontalOptions="Start"  />
                <Button Text="Sync Scans" HorizontalOptions="Start" />
                <Button Text="Export Scans" HorizontalOptions="Start" />                    
            </HorizontalStackLayout>
        </VerticalStackLayout>

        <VerticalStackLayout Padding="7,7" Spacing="2">
            <HorizontalStackLayout Margin="0" Spacing="2" HorizontalOptions="Start">
                <Button Text="Show Scans" HorizontalOptions="Start" FontSize="7" Padding="7,5" MinimumHeightRequest="0" CornerRadius="4"/>
                <Button Text="Sync Scans" HorizontalOptions="Start" FontSize="7" Padding="7,5" MinimumHeightRequest="0" CornerRadius="4"/>
                <Button Text="Export Scans" HorizontalOptions="Start" FontSize="7" Padding="7,5" MinimumHeightRequest="0" CornerRadius="4"/>
            </HorizontalStackLayout>
        </VerticalStackLayout>

    </VerticalStackLayout>           
</ScrollView>
© www.soinside.com 2019 - 2024. All rights reserved.