XAML 如何在.NET MAUI中最大化GraphicsView的大小?

6rqinv9w  于 12个月前  发布在  .NET
关注(0)|答案(2)|浏览(150)

我是.NET MAUI的新手,有一个简单的问题:
如何使用GraphicsView布局中的所有剩余空间?
我尝试将HorizontalOptions="Fill"VerticalOptions="Fill"结合使用。但只有当我将GraphicsView直接插入ContentPage时才有效。一旦我使用布局将GraphicsView放入其中,它就不会显示。显示这一点的唯一方法是使用具体数字的高度和宽度要求。
为什么我的尝试不起作用,我如何解决这个问题?
这不起作用:

<ContentPage>    
    <ContentPage.Resources>
        <drawable:MyDrawable x:Key="drawable" />
    </ContentPage.Resources>

    <VerticalStackLayout>
        <GraphicsView Drawable="{StaticResource drawable}"
            BackgroundColor="Purple"
            HorizontalOptions="Fill"
            VerticalOptions="Fill"/>
        <Label
            Text="Hello, World!"
            SemanticProperties.HeadingLevel="Level1"
            FontSize="32"
            HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

字符串
这是可行的,但有固定的大小:

<ContentPage>    
    <ContentPage.Resources>
        <drawable:MyDrawable x:Key="drawable" />
    </ContentPage.Resources>

    <VerticalStackLayout>
        <GraphicsView Drawable="{StaticResource drawable}"
            BackgroundColor="Purple"
            HeightRequest="200"
            WidthRequest="200" />/>
        <Label
            Text="Hello, World!"
            SemanticProperties.HeadingLevel="Level1"
            FontSize="32"
            HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

cwdobuhd

cwdobuhd1#

StackLayout在一个方向上不受限制,无论是垂直还是水平。因此,您将无法使用Fill选项来占用该特定方向上的所有可用空间。
如果你想占用整个可用空间,你应该使用网格:

<ContentPage>    
    <ContentPage.Resources>
        <drawable:MyDrawable x:Key="drawable" />
    </ContentPage.Resources>

    <Grid RowDefinitions="*,auto">
        <GraphicsView Drawable="{StaticResource drawable}"
            Grid.Row="0"
            BackgroundColor="Purple"
            HorizontalOptions="Fill"
            VerticalOptions="Fill"/>
        <Label
            Grid.Row="1"
            Text="Hello, World!"
            SemanticProperties.HeadingLevel="Level1"
            FontSize="32"
            HorizontalOptions="Center" />
    </Grid>
</ContentPage>

字符串
这里,Grid的第一行将使用 * 星星 * 选项占用尽可能多的空间,而第二行仅占用使用行高的 auto 选项来适应Label所需的空间。

  • 注意***AndExpand LayoutOptions在MAUI中已弃用,不应再使用。*
pinkon5k

pinkon5k2#

您可以使用VerticalOptions="FillAndExpand"这样设置StackLayout。

<ContentPage.Resources>
    <drawable:GraphicsDrawable x:Key="drawable" />
</ContentPage.Resources>
<StackLayout>
    <StackLayout VerticalOptions="FillAndExpand">
        <Border
        BackgroundColor="WhiteSmoke"
        Stroke="Blue"
        StrokeShape="Rectangle"
        StrokeThickness="4"
        HorizontalOptions="FillAndExpand"
        VerticalOptions="FillAndExpand">
            <GraphicsView
            Drawable="{StaticResource drawable}" />
        </Border>
    </StackLayout>
    <Label
        Text="Hello, World!"
        SemanticProperties.HeadingLevel="Level1"
        FontSize="32"
        HorizontalOptions="Center" />

</StackLayout>

字符串


的数据

相关问题