我尝试制作自定义视图,仅作为标题和正文,它们都是视图,例如能够包含StackLayout
。
在使用此自定义视图的页面的Xaml
中,我想编写如下内容:
<Controls:MyBox>
<Controls:MyBox.Header>
<StackLayout>
</StackLayout>
</Controls:MyBox.Header>
<Controls:MyBox.Body>
<StackLayout>
</StackLayout>
</Controls:MyBox.Body>
</Controls:MyBox>
我在xaml
中的自定义控件是这样的:
<StackLayout xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="My.Controls.MyBox"
x:Name="This"
Padding="10"
Spacing="0"
>
<StackLayout>
<StackLayout>
<View x:Name="Header" />
</StackLayout>
<StackLayout>
<View x:Name="Body" />
</StackLayout>
</StackLayout>
</StackLayout>
如何制作Controls:MyBox.Header
标记的内容与<View x:Name="Body" />
的内容链接
答案 0 :(得分:0)
在Xamarin Forms中,它没有用户控件,类似于WPF。但是您可以通过使用ContentView来实现类似的目的。
1。在ContentView中创建标题。
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App4.UserControl">
<ContentView.Content>
<StackLayout BackgroundColor="Red">
<Label Text="This is header" />
</StackLayout>
</ContentView.Content>
</ContentView>
创建一个ContentPage并引用Header ContentView的命名空间 然后使用该控件将控件放置在页面上的任何位置
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:App4"
x:Class="App4.MainPage" BackgroundColor="LightSteelBlue">
<ContentPage.Content>
<StackLayout>
<!-- Header-->
<StackLayout>
<local:UserControl />
</StackLayout>
<!-- body -->
<StackLayout BackgroundColor="Blue">
<Label Text="This is body"></Label>
</StackLayout>
</StackLayout>
</ContentPage.Content
</ContentPage>