.Net Maui ContentPage文档提供了一个 XAML 示例。但没有 c# 示例。
如何仅使用 c# 创建 ContentPage?
博士
.NET MAUI ContentPage (C#)
或.NET MAUI ContentView (C#)
.xamarin forms SomeUIElement class
上搜索SomeUIElement
API。Maui“API”文档还没有(目前只有一个页面给出了每个类的“高级”解释),因此可以通过搜索相应的 Xamarin Forms 类找到更多信息。
谷歌xamarin forms contentpage class
查找:
在那里,我们看到了 c# 示例:
using System;
using Xamarin.Forms;
namespace ContentPageExample
{
public class App : Application
{
public static Page GetMainPage ()
{
return new ContentPage {
Content = new Label {
Text = "Hello, Forms!",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
},
};
}
public App ()
{
MainPage = GetMainPage();
}
}
}
毛伊岛的App
细节可能略有不同;我们关心的这段代码的一部分是:
return new ContentPage {
Content = new Label {
Text = "Hello, Forms!",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
},
};
这在毛伊岛按原样工作。(编译器警告LayoutOptions.CenterAndExpand
已弃用;但讨论超出了此答案的范围。)
可重复使用的视图
如果要在 xaml 或代码中的其他位置引用 UI 元素,请定义现有 UI 元素的子类。
感谢 Paramjit 指出第一步是将适当的项目添加到项目中。对于ContentPage
,即:
右键单击项目-> 添加-> 新项目-> .NET MAUI->
.NET MAUI ContentPage (C#)
对于ContentView
(如下),该步骤是:
右键单击项目-> 添加-> 新项目-> .NET MAUI->
.NET MAUI ContentView (C#)
源文件 MyContentView.cs:
namespace MyViews
{
public class MyContentView : ContentView
{
public MyContentView {
//NO "InitializeComponent()" because doing it all in c#.
Content = new Label {
Text = "Hello, Maui!"
}
}
}
}
XAML 中的用法:
<SomeClass ...
xmlns:myviews="clr-namespace:MyViews"
...>
...
<myviews:MyContentView ... />
</SomeClass>
在 c# 中作为 c# 标记的一部分的用法:
using MyViews;
...
var page = new ContentPage {
Content = new MyContentView()
}
先进的
子类化ContentView
是在 Maui 中制作“自定义控件”的一种方式。
要定义自定义属性,请阅读“自定义视图”和“BindableProperties”。(我目前没有具体的链接可以推荐。请随意添加此类链接作为评论。)
更高级的方法是创建自定义处理程序。
请参阅创建 .NET MAUI 地图控件。
更多信息
在 c# 中定义 UI 元素称为“c# 标记”。
和Xamarin 社区工具包 C# 标记。注意:这里提到的 Nuget不再需要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句