Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin Forms项目中以*CS.CS结尾的文件的用途是什么?_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# Xamarin Forms项目中以*CS.CS结尾的文件的用途是什么?

C# Xamarin Forms项目中以*CS.CS结尾的文件的用途是什么?,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我正在学习一些Xamarin的开发。当我研究Xamarin项目的示例时,我有时会看到一个页面有一个神秘的文件,该文件与xaml文件及其代码隐藏文件同名,但以*CS.CS结尾,正如您可以看到的,上面链接的项目中的LoginPage就是这样: LoginPage.xaml LoginPage.xaml.cs LoginPageCS.cs查看代码,LoginPageCS.cs似乎与LoginPage.xaml基本相同-因此,这是一种在C#中创建页面控件的方法,而不是xaml。有关差异的讨论,请参见

我正在学习一些Xamarin的开发。当我研究Xamarin项目的示例时,我有时会看到一个页面有一个神秘的文件,该文件与xaml文件及其代码隐藏文件同名,但以
*CS.CS
结尾,正如您可以看到的,上面链接的项目中的LoginPage就是这样:

  • LoginPage.xaml
  • LoginPage.xaml.cs

  • LoginPageCS.cs查看代码,LoginPageCS.cs似乎与LoginPage.xaml基本相同-因此,这是一种在C#中创建页面控件的方法,而不是xaml。有关差异的讨论,请参见

    注意相似之处

    LoginPage.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" x:Class="LoginNavigation.LoginPage" Title="Login">
        <ContentPage.ToolbarItems>
            <ToolbarItem Text="Sign Up" Clicked="OnSignUpButtonClicked" />
        </ContentPage.ToolbarItems>
        <ContentPage.Content>
            <StackLayout VerticalOptions="StartAndExpand">
                <Label Text="Username" />
                <Entry x:Name="usernameEntry" Placeholder="username" />
                <Label Text="Password" />
                <Entry x:Name="passwordEntry" IsPassword="true" />
                <Button Text="Login" Clicked="OnLoginButtonClicked" />
                <Label x:Name="messageLabel" />
            </StackLayout>
        </ContentPage.Content>
    </ContentPage>
    

    页边距只是一种直观的方式,表明页面是通过C#代码创建的,而不是Xaml。Xaml对UI设计器很友好,是代码生成器的输入。您通常看不到它生成的代码,而且代码也不是很漂亮。因此,作为替代方案,它们还提供fooCS.cs文件,该文件的功能与foo.xaml和foo.xaml.cs文件完全相同。但是在另一个名为fooCS的类中。该类实际上没有在项目中使用。除了演示用途之外,它还可能激励程序员编写代码而不是xaml。哦,好吧!因此,示例项目只提供了两种方法来进行设计—一种是使用XAML,另一种是使用代码?:-)看来是这样
    public LoginPageCS ()
    {
        var toolbarItem = new ToolbarItem {
            Text = "Sign Up"
        };
        toolbarItem.Clicked += OnSignUpButtonClicked;
        ToolbarItems.Add (toolbarItem);
    
        messageLabel = new Label ();
        usernameEntry = new Entry {
            Placeholder = "username"    
        };
        passwordEntry = new Entry {
            IsPassword = true
        };
        var loginButton = new Button {
            Text = "Login"
        };
        loginButton.Clicked += OnLoginButtonClicked;
    
        Title = "Login";
        Content = new StackLayout { 
            VerticalOptions = LayoutOptions.StartAndExpand,
            Children = {
                new Label { Text = "Username" },
                usernameEntry,
                new Label { Text = "Password" },
                passwordEntry,
                loginButton,
                messageLabel
            }
        };
    }