我正在尝试为 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>
或其他现有的布局类(如Grid
、StackLayout
、RelativeLayout
等(继承您的类。
基类取决于您需要如何布局子项。
请参阅我下面的 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;
}
}