繁体   English   中英

使用Xamarin ZXing.Net.Mobile-扫描仪拉伸=问题

[英]Using Xamarin ZXing.Net.Mobile - scanner stretched = ISSUE

我目前正在使用Xamarin Forms软件包ZXing.Net.Mobile 我希望内容位于屏幕顶部和底部,并且希望扫描仪位于中间位置。

如果我指定扫描仪的高度,它会使其伸展而使其丑陋且不美观(因为该扫描仪将用于全屏显示?)。

我想在屏幕顶部显示一些具有动态高度的内容,然后我希望扫描仪的高度为150-200 ,然后在屏幕的其余部分显示一些内容。

我一直在寻找ZXingDefaultOverlay但我无法ZXingDefaultOverlay它。

任何人都有可以帮助我的想法,示例或答案?

以下是示例代码,其中我使用网格在屏幕的顶部和底部显示内容,中间的屏幕包含扫描仪。

public ZXingDefaultOverlay()
{

BindingContext = this;

            RowSpacing = 0;

            VerticalOptions = LayoutOptions.FillAndExpand;
            HorizontalOptions = LayoutOptions.FillAndExpand;

            RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
            RowDefinitions.Add(new RowDefinition { Height = new GridLength(2, GridUnitType.Star) });
            RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });

ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });

Children.Add(new BoxView
            {
                VerticalOptions = LayoutOptions.Fill,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                BackgroundColor = Color.Transparent,
                Opacity = 0.7,
            }, 0, 0);

            Children.Add(new BoxView
            {
                VerticalOptions = LayoutOptions.Fill,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                BackgroundColor = Color.Transparent,
                Opacity = 0.7,
            }, 0, 2);

StackLayout ImageLabelContainer = new StackLayout();

            Image imgBox = new Image();
            imgBox.Source = "scan_qr.png";
            imgBox.VerticalOptions = LayoutOptions.Fill;
            imgBox.HorizontalOptions = LayoutOptions.FillAndExpand;
            ImageLabelContainer.Children.Add(imgBox);

            Label lblSuccess = new Label();
            lblSuccess.Margin = new Thickness(0, 7, 0, 0);
            lblSuccess.HorizontalTextAlignment = TextAlignment.Center;
            lblSuccess.TextColor = Color.Green;
            lblSuccess.AutomationId = "zxingDefaultOverlay_BottomTextLabel";
            lblSuccess.SetBinding(Label.TextProperty, new Binding(nameof(BottomText)));
            ImageLabelContainer.Children.Add(lblSuccess);

            Children.Add(ImageLabelContainer, 0, 1);
}

在这里,您可以根据需要设置行的高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM