如何在 Xamarin Forms 中创建与屏幕一样大的矩形?
how can I create a rectangular as big as the screen in Xamarin Forms?
我想在 XAML Xamarin Forms 中制作一个矩形,如何将高度和宽度设置为与 phone 屏幕一样大? HeightRequest 和 widthRequest 似乎不起作用
我想在相机框架周围制作一个厚的透明边框,所以我想制作与屏幕一样大的矩形,我该如何设置它们以适应所有尺寸的屏幕?
<StackLayout>
<Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<xct:CameraView x:Name="cameraView" CameraOptions="Back" CaptureMode="Photo" OnAvailable="CameraView_OnAvailable">
<xct:CameraView.Behaviors >
<xct:EventToCommandBehavior Command="{Binding PhotoCapturedCommand}" EventName="MediaCaptured" />
</xct:CameraView.Behaviors>
</xct:CameraView>
<Rectangle HeightRequest="1*" Fill="Transparent" Stroke="Blue" Opacity="0.7" StrokeThickness="150"/>
</Grid>
</StackLayout>
Absolute Layout 有两大优势:
顾名思义,元素的position/size是绝对的
您可以“堆叠”元素制作图层
对于此示例,CameraView 将占据屏幕的 100%,“遮罩”将占据 50%。
这些值将与屏幕尺寸成比例(这只是一个例子)。
确保检查每个屏幕图像不失真
<AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<xct:CameraView x:Name="cameraView" CameraOptions="Back" CaptureMode="Photo" OnAvailable="CameraView_OnAvailable" AbsoluteLayout.LayoutBounds="0.5,0.5,1,1" AbsoluteLayout.LayoutFlags="All">
<xct:CameraView.Behaviors >
<xct:EventToCommandBehavior Command="{Binding PhotoCapturedCommand}" EventName="MediaCaptured" />
</xct:CameraView.Behaviors>
</xct:CameraView>
<Frame BackgroundColor="Transparent" BorderColor="White" AbsoluteLayout.LayoutBounds="0.5,0.5,0.5,0.5" AbsoluteLayout.LayoutFlags="All"/>
</AbsoluteLayout>
如果需要,您可以将此代码放入任何其他组件中
我想在 XAML Xamarin Forms 中制作一个矩形,如何将高度和宽度设置为与 phone 屏幕一样大? HeightRequest 和 widthRequest 似乎不起作用 我想在相机框架周围制作一个厚的透明边框,所以我想制作与屏幕一样大的矩形,我该如何设置它们以适应所有尺寸的屏幕?
<StackLayout>
<Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<xct:CameraView x:Name="cameraView" CameraOptions="Back" CaptureMode="Photo" OnAvailable="CameraView_OnAvailable">
<xct:CameraView.Behaviors >
<xct:EventToCommandBehavior Command="{Binding PhotoCapturedCommand}" EventName="MediaCaptured" />
</xct:CameraView.Behaviors>
</xct:CameraView>
<Rectangle HeightRequest="1*" Fill="Transparent" Stroke="Blue" Opacity="0.7" StrokeThickness="150"/>
</Grid>
</StackLayout>
Absolute Layout 有两大优势:
顾名思义,元素的position/size是绝对的
您可以“堆叠”元素制作图层
对于此示例,CameraView 将占据屏幕的 100%,“遮罩”将占据 50%。 这些值将与屏幕尺寸成比例(这只是一个例子)。 确保检查每个屏幕图像不失真
<AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<xct:CameraView x:Name="cameraView" CameraOptions="Back" CaptureMode="Photo" OnAvailable="CameraView_OnAvailable" AbsoluteLayout.LayoutBounds="0.5,0.5,1,1" AbsoluteLayout.LayoutFlags="All">
<xct:CameraView.Behaviors >
<xct:EventToCommandBehavior Command="{Binding PhotoCapturedCommand}" EventName="MediaCaptured" />
</xct:CameraView.Behaviors>
</xct:CameraView>
<Frame BackgroundColor="Transparent" BorderColor="White" AbsoluteLayout.LayoutBounds="0.5,0.5,0.5,0.5" AbsoluteLayout.LayoutFlags="All"/>
</AbsoluteLayout>
如果需要,您可以将此代码放入任何其他组件中