如何基于包含StackLayout的框架创建新的Xamarin元素?

如何基于包含StackLayout的框架创建新的Xamarin元素?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个框架,里面有一个StackLayout: 我可以创建一个名为NewFrame的新对象,它与内部带有StackLayout的框架相同吗 或 或 有人建议我使用自定义视图,但我已经查看了,找不到其中包含其他元素的示例。在解决方案资源管理器的共享项目(或PCL)中的所需位置单击鼠标右键(我建议添加名为“视图”或“自定义视图”的文件夹,并在该文件夹中创建项目),选择“添加新项目”并选择“内容视图”(后面不带(C#))。文件名应类似于“View1.xaml”,您可以根据自己的喜好进

我有一个框架,里面有一个StackLayout:


我可以创建一个名为NewFrame的新对象,它与内部带有StackLayout的框架相同吗





有人建议我使用自定义视图,但我已经查看了,找不到其中包含其他元素的示例。

在解决方案资源管理器的共享项目(或PCL)中的所需位置单击鼠标右键(我建议添加名为“视图”或“自定义视图”的文件夹,并在该文件夹中创建项目),选择“添加新项目”并选择“内容视图”(后面不带(C#))。文件名应类似于“View1.xaml”,您可以根据自己的喜好进行更改,但重要的是xaml扩展名在那里

这将创建一个包含xaml和xaml.cs文件的新ContentView。 在xaml文件中,您可以声明上面发布的xaml代码,并将任何必要的代码写入xaml.cs文件

现在,您可以将名称空间声明添加到要将视图放入其中的页面:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
        ...
        xmlns:customs="clr-namespace:YourNamespace.Views;assembly=YourNamespace"
使用a和a来创建自定义控件。这样,您可以创建一个名为
NewFrame
的新控件,为控件编写XAML,然后使用
中的
标记来指定您希望内容的位置

像这样:

.
└── NewFrame
    ├── NewFrame.cs
    └── NewFrame.xaml  -> Is a ResourceDictionary
NewFrame.cs:

namespace TestApp.Controls
{
公共部分类NewFrame:ContentView
{
}
}
NewFrame.xaml:


ConsumingYourControl.xaml:



我的问题是,它只是一个框架,框架内有不同的XAML代码。而不仅仅是一组相同的XAML。你知道我如何处理它吗?不,我看不到任何好的方法。你可以创建多个类,每个类对应于每个变量。你看过这个类了吗?
.
└── NewFrame
    ├── NewFrame.cs
    └── NewFrame.xaml  -> Is a ResourceDictionary