C# UI不响应在第一个字段之后接受任何输入

C# UI不响应在第一个字段之后接受任何输入,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我用Xamarin表单开发了一个简单的登录UI。我遇到的问题是,只有IP条目正常运行的顶部字段和字段后的其他字段不能按预期运行。下面我附上了xaml代码 <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://s

我用Xamarin表单开发了一个简单的登录UI。我遇到的问题是,只有IP条目正常运行的顶部字段和字段后的其他字段不能按预期运行。下面我附上了xaml代码

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Login_Design.CustomRenderer"
             x:Class="Login_Design.MainPage">

    <ContentPage.Content>
        <StackLayout BackgroundColor="#e6e6e6" x:Name="MainLayout">
            <Grid>
                <StackLayout Padding="0" Margin="0" HorizontalOptions="FillAndExpand">
                    <Frame HeightRequest="200" BackgroundColor = "#34ebab"  Padding="0" Margin="0">
                        <Image Source="logoInchz.png" HeightRequest="100" Margin="0" VerticalOptions="Center" HorizontalOptions="Center"/>
                    </Frame>
                </StackLayout>
                <StackLayout Padding="0" Margin="10,180,10,0" HorizontalOptions="FillAndExpand" HeightRequest="100">
                    <Frame  BackgroundColor="White" HeightRequest="500" HasShadow="True" Padding="0" Margin="0">

                        <StackLayout>

                            <StackLayout Margin="10">
                                <Label Text="SIGN IN" TextColor="Black" HorizontalOptions="CenterAndExpand" FontAttributes="Bold"/>
                            </StackLayout>

                            <StackLayout Padding="0" Margin="15">

                                <Frame BackgroundColor="Transparent" BorderColor="DarkGray" Padding="0" HorizontalOptions="FillAndExpand" CornerRadius="30">
                                    <StackLayout Orientation="Horizontal">
                                        <Frame BackgroundColor="LightGray" HeightRequest="40" WidthRequest="40" CornerRadius="30" Padding="0" Margin="5">
                                            <Image Source="ip.png" Aspect="AspectFill" Margin="0"/>
                                        </Frame>

                                        <local:MyCustomEntry IsReadOnly="False" x:Name="serverEntry " Placeholder="IP Address" TextColor="Black" FontAttributes="None" HorizontalOptions="FillAndExpand" Margin="0,0,20,0"/>
                                    </StackLayout>
                                </Frame>


                                <Frame BackgroundColor="Transparent" BorderColor="DarkGray" Margin="0,15,0,0" Padding="0" HorizontalOptions="FillAndExpand" CornerRadius="30">
                                    <StackLayout Orientation="Horizontal">
                                        <Frame BackgroundColor="LightGray" HeightRequest="40" WidthRequest="40" CornerRadius="30" Padding="0" Margin="5">
                                            <Image Source="port.png" Aspect="AspectFill" Margin="0"/>
                                        </Frame>

                                        <local:MyCustomEntry IsReadOnly="False" x:Name="portEntry " Placeholder="Port"  TextColor="Black" FontAttributes="None" HorizontalOptions="FillAndExpand" Margin="0,0,20,0"/>
                                    </StackLayout>
                                </Frame>

                                <Frame BackgroundColor="Transparent" BorderColor="DarkGray" Margin="0,15,0,0" Padding="0" HorizontalOptions="FillAndExpand" CornerRadius="30">
                                    <StackLayout Orientation="Horizontal">
                                        <Frame BackgroundColor="LightGray" HeightRequest="40" WidthRequest="40" CornerRadius="30" Padding="0" Margin="5">
                                            <Image Source="avatar.png" Aspect="AspectFill" Margin="0"/>
                                        </Frame>

                                        <local:MyCustomEntry IsReadOnly="False" x:Name="usernameEntry " Placeholder="Username" TextColor="Black" FontAttributes="None" HorizontalOptions="FillAndExpand" Margin="0,0,20,0"/>
                                    </StackLayout>
                                </Frame>

                                <Frame BackgroundColor="Transparent" BorderColor="DarkGray" Margin="0,15,0,0" Padding="0" HorizontalOptions="FillAndExpand" CornerRadius="30">
                                    <StackLayout Orientation="Horizontal">
                                        <Frame BackgroundColor="LightGray" HeightRequest="40" WidthRequest="40" CornerRadius="30" Padding="0" Margin="5">
                                            <Image Source="lock_icon.png" Aspect="AspectFill" Margin="0"/>
                                        </Frame>

                                        <local:MyCustomEntry IsReadOnly="False" x:Name="passwordEntry " Placeholder="Password" IsPassword="True" TextColor="Black" FontAttributes="None" HorizontalOptions="FillAndExpand" Margin="0,0,20,0"/>
                                    </StackLayout>
                                </Frame>

                                <StackLayout  Orientation="Horizontal">
                                    <CheckBox x:Name="autoLogin" IsChecked="False" Color="#34ebab" />
                                    <Label Text="Auto Login" TextColor="DarkGray" FontSize="Small" VerticalTextAlignment="Center" HorizontalTextAlignment="Center" />
                                </StackLayout>

                                <Button Text="SIGN IN" BackgroundColor="#34ebab" TextColor="White" CornerRadius="30" />
                            </StackLayout>
                        </StackLayout>
                    </Frame>
                </StackLayout>
            </Grid>
        </StackLayout>

    </ContentPage.Content>

</ContentPage>
[程序集:ExportRenderer(typeof(MyCustomEntry)、typeof(MyEntryRenderer))]
名称空间登录\u Design.Droid
{
公共类MyEntryRenderer:EntryRenderer
{
公共MyEntryRenderer(上下文):基础(上下文)
{
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
//if(控件!=null)
//{
//GradientDrawable gd=新的GradientDrawable();
SetBackgroundColor(Android.Graphics.Color.Transparent);
//本品为对照品,可退根(gd);
//this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions);
//Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.White));
//}
}
}
我试图删除StackLayout并试图修改它,但只删除了第一个输入字段函数。我也没有看到代码中有任何错误


谢谢

您是否尝试用默认条目替换自定义条目?它是否具有相同的行为…首先找到它,因为它可能有助于您了解问题的确切原因或者您可能对
IsReadOnly
的bindable属性有问题,您能展示它是如何实现的吗?已尝试使用默认条目,但仍然是相同的,我添加了
IsReadOnly
属性来检查它是否解决了问题。无论如何,在我再次重做xaml代码后,这个问题得到了解决,并且我没有做任何更改。欢迎使用。您好,您可以尝试用
ScrollView
替换
MainLayout
,而不是
StackLayout
来检查它是否工作。您没有这样做吗ry用默认条目替换自定义条目?它是否具有相同的行为…首先查找它,因为它可能有助于您了解问题的确切原因或者您可能对
IsReadOnly
的bindable属性有问题,您能说明它是如何实现的吗?已尝试使用默认条目,但仍然相同,我添加了
IsReadOnly
属性检查它是否解决了问题。无论如何,在我再次重做xaml代码后,这个问题得到了解决,我没有做任何更改。欢迎使用SO!您好,您可以尝试将
MainLayout
替换为
ScrollView
,而不是
StackLayout
,以检查它是否工作。
namespace Login_Design
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
    }
}
namespace Login_Design.CustomRenderer
{
    public class MyCustomEntry : Entry
    {

    }
}
[assembly: ExportRenderer(typeof(MyCustomEntry), typeof(MyEntryRenderer))]
namespace Login_Design.Droid
{
    public class MyEntryRenderer : EntryRenderer
    {
        public MyEntryRenderer(Context context) : base(context)
        {

        }

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);

            //if (Control != null)
            //{
                //GradientDrawable gd = new GradientDrawable();
                Control.SetBackgroundColor(Android.Graphics.Color.Transparent);
                //this.Control.SetBackgroundDrawable(gd);
                //this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions);
                //Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.White));
            //}
        }
    }