【问题标题】:How to add button with Children.Add in code behind?How to add clicked to button如何添加带有Children的按钮。在后面的代码中添加?如何添加点击按钮
【发布时间】:2020-09-17 09:47:55
【问题描述】:

在 stacklayout 中添加按钮并没有给我添加按钮名称的地方。

var sl = new StackLayout
            {
                Children = {
                    new Button {Text="Click Me"},
}
};

如何为按钮添加名称以便添加 button.clicked 事件?

【问题讨论】:

  • 按钮本身很可能有一个 ClickedEvent 属性,您可以在初始化按钮时设置该属性。另外,为什么不在 xaml 中做呢?
  • 要在页面中添加按钮并在后面的代码中为按钮添加点击事件,您可以参考教程:docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/… xaml 中使用 x:Name 属性而不是代码后面。查看文档:docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/…
  • 非常感谢。我知道这些技术,但是当我在 stacklayout 中创建按钮时出现了我的问题,它没有提供命名按钮的方法。代码如下: var sl2 = new StackLayout { Children = { new Button {Text="GoBack", Style=(Style)Application.Current.Resources["MyButtons"] },

标签: xamarin button code-behind


【解决方案1】:

如何添加带有Children的按钮。在后面的代码中添加?如何添加点击按钮

要在页面中添加按钮并在后面的代码中为按钮添加点击事件,请尝试以下代码:

Button button = new Button
{
    Text = "Button",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.Center
};
button.Clicked += Click_Event;

Content = new StackLayout
{
    Children =
    {
        button
    }
};

private void Click_Event(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

教程:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/button#creating-a-button-in-code

如何为按钮添加名称以便添加 button.clicked 事件?

x:Name 属性在 xaml 中使用,而不是后面的代码。
查看文档:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/get-started-with-xaml?tabs=windows#xaml-and-code-interactions

【讨论】:

    【解决方案2】:

    使用普通的 C# 对象引用

    Button button;
    
    var sl = new StackLayout
    {
      Children = {
        (button = new Button {Text="Click Me"})
      }
    };
    
    button.Clicked += MyClickedHandler;
    

    XAML 中的x:Name 不是一个实际的对象属性,它只是为了方便 XAML 工具生成对象引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 2013-07-31
      • 1970-01-01
      相关资源
      最近更新 更多