2017-10-20 9 views
3

私は自分自身でXamarinの開発を学んでいます。 Xamarinプロジェクトの例を調べると、like this oneが表示されます。xamlファイルとそのコードビハインドファイルと同じ名前の不思議なファイルがページに表示されることがありますが、*CS.csで終わる場合は、上記リンクされたプロジェクト:Xamarin Formsプロジェクトで* CS.csで終わるファイルの目的は何ですか?

  • LoginPage.xaml
  • LoginPage.xaml.cs
  • LoginPageCS.cs < ---これは何ですか?

LoginPage.xamlはもちろんレイアウトのxaml記述であり、LoginPage.xaml.csはコードビハインドです。しかし、LoginPageCS.csは何ですか?私はそれをプロジェクトから削除して、以前と同じ機能でソリューションを再実行することができます。では、*CS.csで終わるファイルの目的は何ですか?私は*CS.csファイルがあるいくつかのサンプルプロジェクトを見てきました。

+0

マージンはページがC#コードを介して作成されていることを伝えるための単なる視覚的な方法であり、 Xamlではありません。 – SushiHangover

+0

XAMLはUIデザイナーに親切で、*コードジェネレータ*の入力です。あなたは通常、それが生成するコードを見ることはできませんし、そのコードはそれほどきれいではありません。代わりに、foo.xamlとfoo.xaml.csファイルとまったく同じことをするfooCS.csファイルも提供します。しかし、fooCSという別のクラスでは。そのクラスはプロジェクトで実際には使用されません。実証的な使い方以外にも、xamlの代わりにプログラマーにコードを書くよう促すかもしれません。 –

答えて

3

コードを見ると、LoginPageCS.csはLoginPage.xamlとほとんど同じように見えます。つまり、XAMLではなくC#でページコントロールを作成する方法になります。この相違点については、this questionを参照してください。

注類似

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> 

LoginPageCS.cs:

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 
     } 
    }; 
} 
+0

ありがとう!サンプルプロジェクトでは、XAMLとコードを使用してデザインを作成する方法が2通りあります。 :-) – Rox

+0

そうだね – dannymc18

関連する問題