XAML 在Camera.MAUI组件上动态设置宽度和高度

mnowg1ta  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(213)

我正在尝试创建自定义ContentView。该视图包含前置和后置相机。后置摄像头需要填满整个屏幕,而前置摄像头则漂浮在左上角。
然而,使用WidthRequest和HeightRequest似乎并不支持不同的屏幕尺寸。我有问题,弄清楚如何使用全屏,而不是,也许使用百分比来计算前置摄像头和快门按钮的大小。
下面是我的代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:cv="clr-namespace:Camera.MAUI;assembly=Camera.MAUI"
         x:Class="App.Components.Camera">
<Grid>
    <Frame CornerRadius="10"
            ZIndex="1000"
            WidthRequest="100" 
            HeightRequest="150" 
            VerticalOptions="Start" 
            HorizontalOptions="Start" 
            Margin="10">
        <Grid 
            WidthRequest="100" 
            HeightRequest="150">
            <cv:CameraView 
                x:Name="FrontCameraView" 
                CamerasLoaded="FrontCameraLoaded"/>
        </Grid>
    </Frame>

    <Grid 
        ZIndex="900" 
        WidthRequest="500" 
        HeightRequest="700">
        <cv:CameraView 
            x:Name="BackCameraView" 
            CamerasLoaded="BackCameraLoaded"/>
    </Grid>

    <Grid ZIndex="1000" 
          WidthRequest="100" 
          HeightRequest="75" 
          VerticalOptions="End" 
          HorizontalOptions="Center" 
          Margin="20">
        <ImageButton 
            Source="../Resources/Images/camera_shutter_circle.svg"
            Clicked="SnapImages"/>
    </Grid>
</Grid>
k2fxgqgv

k2fxgqgv1#

我有问题,弄清楚如何使用全屏,而不是,也许使用百分比来计算前置摄像头和快门按钮的大小。
GridGridLength结构体根据GridUnitType枚举指定行高或列宽,GridUnitType枚举有三个成员:

  • 绝对-行高或列宽是以设备无关单位表示的值(XAML中的数字)。
  • 自动-根据单元格内容自动调整行高或列宽(XAML中为自动)。
    *星星-剩余的行高或列宽按比例分配(在XAML中是后跟 * 的数字)。

因此,可以使用*为视图分配剩余的行高或列宽。
此外,还可以对GridGrid.RowSpanGrid.ColumnSpan进行合理的属性化,以达到您想要的效果。
有关详细信息,您可以查看文档:和列。

相关问题