在Xamarin Forms中添加按钮的最佳方法是什么?

时间:2017-04-20 03:39:20

标签: c# xaml xamarin xamarin.forms visual-studio-2017

所以我是Xamarin Forms的新手,我发现了两种添加按钮的方法:

1.解开.xaml文件中的按钮

 <!--  <Button Text="Click Me!"
      Clicked="OnButtonClicked" VerticalOptions="CenterAndExpand" />-->

和.xaml.cs文件

 public void OnButtonClicked(object sender, EventArgs args)
     {
         count++;

         label.Text =
             String.Format("{0} click{1}!", count, count == 1 ? "" : "s");
  1. 仅在.xaml.cs文件中声明按钮

    using System;
    using Xamarin.Forms;
    
    namespace FormsGallery
    {
        class ButtonDemoPage : ContentPage
        {
            Label label;
            int clickTotal = 0;
    
            public ButtonDemoPage()
            {
                Label header = new Label
                {
                    Text = "Button",
                    Font = Font.BoldSystemFontOfSize(50),
                    HorizontalOptions = LayoutOptions.Center
                };
    
                Button button = new Button
                {
                    Text = "Click Me!",
                    Font = Font.SystemFontOfSize(NamedSize.Large),
                    BorderWidth = 1,
                    HorizontalOptions = LayoutOptions.Center,
                    VerticalOptions = LayoutOptions.CenterAndExpand
                };
                button.Clicked += OnButtonClicked;
    
                label = new Label
                {
                    Text = "0 button clicks",
                    Font = Font.SystemFontOfSize(NamedSize.Large),
                    HorizontalOptions = LayoutOptions.Center,
                    VerticalOptions = LayoutOptions.CenterAndExpand
                };
    
                // Accomodate iPhone status bar.
                this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5);
    
                // Build the page.
                this.Content = new StackLayout
                {
                    Children = 
                    {
                        header,
                        button,
                        label
                    }
                };
            }
    
            void OnButtonClicked(object sender, EventArgs e)
            {
                clickTotal += 1;
                label.Text = String.Format("{0} button click{1}",
                                        clickTotal, clickTotal == 1 ? "" : "s");
            }
        }
    }
    
  2. 但问题是:我想知道哪种方式更适合添加按钮,并且不会出现任何未来的代码问题。

    谢谢!

4 个答案:

答案 0 :(得分:4)

实际上他们是一样的。这取决于他人的选择。

我更喜欢XAML而不是代码,因为

  • XAML更清洁,更易于理解。
  • XAML似乎能够更好地尊重&#34;关注点的分离&#34;在UI和控制器逻辑之间。
  • 它在Visual Studio中具有智能感知功能

您可以在此处详细找到答案 https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter07/

答案 1 :(得分:1)

它们在功能上是等同的。在XAML中构建UI通常可以更清晰地分离设计中的关注点,但是一种方法并不是更好的&#34;比另一个。

答案 2 :(得分:0)

他们是一样的。在使用XAML构建UI之后,将其转换为与C#等效的UI,与使用C#编写视图相同。

根据需要对UI进行编码。对我来说,更好的方法是XAML,因为它更干净,更容易理解。

答案 3 :(得分:0)

我同意上述评论,使用XAML或C#取决于您的偏好。另外,我建议很快研究绑定和MVVM,因为它们使UI代码更加清晰。对于按钮,您可以使用命令直接引用ViewModel,而不是在UI代码中使用Click侦听器。

在这里您可以开始使用数据绑定和MVVM:https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-basics/data_bindings_to_mvvm/