如何在 Xamarin 中创建自定义控件?



我正在尝试为 Xamarin 表单创建一些自定义控件...

这些控件应表现为一组其他控件。例如,"标签 + 条目"作为一个要插入到页面中的控件。

我在这里创建了一个从类视图固有的简单控件。

这是具有两个标签的类的示例。在此类中,除了这些标签之外,还应该插入其他控件。

public class Ton : View
{
public Ton() : base()
{
Label L;            
L = new Label();
L.Parent = this;
L.Text = "XXX";
Label M;            
M = new Label();
M.Parent = this;
M.Text = "YYY";
}
}

我将此类插入到页面中:

<local:Ton></local:Ton>

但页面中未显示控制。

请问有谁知道原因吗?

谢谢。 干杯

视图是一个抽象类,它不能没有子类。它也不知道如何在里面布置它的孩子。您必须从Layout<View>或其他现有的布局类(如GridStackLayoutRelativeLayout等(继承您的类。

基类取决于您需要如何布局子项。

请参阅我下面的 GitHub 存储库以了解如何创建自定义控件。 https://github.com/harikrishnann/BusyButton-XamarinForms

您创建了两个标签,但实际上并没有将它们添加到视图层次结构中

public class Ton : ContentView
{
public Ton() : base()
{
Label L;            
L = new Label();
L.Text = "XXX";
Label M;            
M = new Label();
M.Text = "YYY";
// because you have multiple elements, they must be contained in a Layout
var stack = new StackLayout();
stack.Children.Add(L);
stack.Children.Add(M);
// assign your controls to the View hierarchy
this.Content = stack;
}
}

最新更新