首先,我只是想指出,我的英语可能不好,对此我感到很抱歉。
**问题:**
我现在正在学习 .net Maui,我想了解如何做到这一点: 我想制作一个包含许多其他控件(如布局、标签和图像)的边框控件, 但我面临的问题是,我想创建这个特定的边框控件设计,以便我可以将其用作模板或像数据在 FlexLayout 控件内显示的基本表单一样,但如果我在 xaml 中创建此边框控件,我不知道如何复制它,或者如何复制它并多次粘贴我需要的所有数据,我使用 C# 以我创建的形式显示这些数据,现在我不知道我该怎么办,有什么方法可以做这样的事情,甚至如何做?
我希望你能帮我解决这件事,谢谢。
注意:我有一个想法,让所有这些边框控件都像一个新的自定义控件,包含使用 C# 的所有其他内容和控件,这样我每次想使用它时都可以使其只是它的一个实例,或者它的副本,每次都给出它需要的值,例如字符串名称或图像数据等。但这一切我什至不知道该怎么做。 因此,如果这可行,那么我不知道应该观看哪个教程或视频来学习这一点。
作为答案:
如何创建、复制或复制粘贴整个边框控件及其内部的所有控件
您可以使用
ContentView
来实现:
创建内容视图:
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiApp2.NewContent1"
x:Name="this">
<!--create control or layout you want-->
<Border BindingContext="{x:Reference this}"
Stroke="#C49B33"
StrokeThickness="4"
Background="#2B0B98"
Padding="16,8"
Margin="10"
HorizontalOptions="Center">
<Border.StrokeShape>
<RoundRectangle CornerRadius="40,40,40,40" />
</Border.StrokeShape>
<VerticalStackLayout>
<Label Text="{Binding Title}"
TextColor="White"
FontSize="18"
FontAttributes="Bold"/>
<Image .../>
......
</VerticalStackLayout>
</Border>
</ContentView>
它包含使用 C# 的控件,因此每次我想使用它时,我都可以使其只是它的一个实例或它的副本,并且每次都为其提供所需的值,例如字符串名称或图像数据,
关于这一点,在后面的代码中使用BindableProperty来绑定数据:
public partial class NewContent1 : ContentView
{
public static readonly BindableProperty TitleProperty = BindableProperty.Create(nameof(Title), typeof(string), typeof(NewContent1), string.Empty);
public string Title
{
get => (string)GetValue(NewContent1.TitleProperty);
set => SetValue(NewContent1.TitleProperty, value);
}
public NewContent1()
{
InitializeComponent();
}
}
现在您可以在其他页面重复使用它:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiApp2.NewPage3"
xmlns:control="clr-namespace:MauiApp2"
Title="NewPage3">
<VerticalStackLayout>
<control:NewContent1 Title="AAABBB"/>
or use ViewModel to give it a value
<control:NewContent1 Title="{Binding Name}"/>
.....
</VerticalStackLayout>
</ContentPage>
您也可以参考这个案例:.net MAUI DataTemplate's。父视图模型中的命令绑定,了解 ContentView 的更深入使用。