XAML 我不希望在IsVisible=“false”的元素被更改为IsVisible=“false”时重新分配元素,

q9rjltbz  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(82)

我正在使用.net MAUI创建一个移动的应用程序,我隐藏了一个元素并使其在按钮操作中可见。

<VerticalStackLayout
    VerticalOptions="Center"
    Padding="30,0"
    Spacing="25">
    <Image
        x:Name="ThinkWing"
        Source="pngwing.png"
        WidthRequest="200"
        IsVisible="false"
        Aspect="AspectFit"
        VerticalOptions="Center"/>
   <Label
       Text="Welcome! "
       Style="{StaticResource Headline}"
       SemanticProperties.HeadingLevel="Level1" />
   <Button
        x:Name="CounterBtn"
        Text="Hit me if you can" 
        SemanticProperties.Hint="Counts the number of times you click"
        Clicked="OnCounterClicked"
        BorderColor="Black"
        BorderWidth="3"
        BackgroundColor="CadetBlue"
        TextColor="Black"
        HorizontalOptions="Fill" />
</VerticalStackLayout>

字符串
这是在我的XAML文件,我改变IsVisible=“true”当按钮被点击。
所以发生的是.当我的应用程序加载时,我可以看到我的屏幕的标签和按钮中心.当按钮点击,隐藏的图像已经出现在顶部,使其他两个元素被推下.但我不希望这是这样发生,除非它可以分配空间隐藏元素时,屏幕加载.
Thanks:)

vi4fp9gy

vi4fp9gy1#

据我所知,你有一个“隐藏图像”,应该叠加在另一个元素的顶部,以响应Clicked,而不改变VerticalStackLayout


的数据
一个基本的策略是使用Grid控件来保留垂直空间。Grid的行为是,您添加到行或列的元素将彼此“层叠”,而不是像VerticalStackLayout那样“流动”。

<VerticalStackLayout
    VerticalOptions="Center"
    Padding="30,0"
    Spacing="25">
    <Grid HeightRequest="60">
        <Label
            x:Name="labelWelcome"
                Text="Welcome! "
                Style="{StaticResource Headline}"
                SemanticProperties.HeadingLevel="Level1" />
        <Frame                    
            x:Name="ThinkWing"
            BorderColor="Transparent"
            Padding="1"
            IsVisible="False"
            BackgroundColor="White">
            <Image Source="dotnet_bot.png" />
        </Frame>
    </Grid>
    <Button
        x:Name="CounterBtn"
        Text="Hit me if you can" 
        SemanticProperties.Hint="Counts the number of times you click"
        Clicked="OnCounterClicked"
        BorderColor="Black"
        BorderWidth="3"
        BackgroundColor="CadetBlue"
        TextColor="Black"
        HorizontalOptions="Fill" />
</VerticalStackLayout>

字符串

相关问题