我的代码包含许多这样的实例:
<StackLayout Orientation="Vertical" Spacing="0">
我知道我可以指定一种样式,但是也可以创建自己的模板版本,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<StackLayout xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Ja.Templates.VStack">
</StackLayout>
using System;
using System.Collections.Generic;
using Xamarin.Forms;
namespace Ja.Templates
{
public partial class VStack : StackLayout
{
public VStack()
{
InitializeComponent();
this.Orientation = ..
}
}
}
将感谢您的一些建议。谢谢
答案 0 :(得分:1)
您可以创建扩展 StackLayout 的自定义布局 像这样:
namespace App8
{
class VStackLayout :StackLayout
{
public VStackLayout()
{
//set attribute
Spacing = 0;
Orientation = StackOrientation.Vertical;
}
}
}
然后在xaml中:
<?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:App8"
x:Class="App8.MainPage">
//use your customlayout
<local:VStackLayout>
<!--controls here -->
</local:VStackLayout>
</ContentPage>
答案 1 :(得分:-1)
至少您必须添加自定义可绑定属性,这可以通过创建自定义Style
来完成例如:在App.xaml上为StackLayout创建样式作为资源字典:
<Application.Resources>
<ResourceDictionary>
<Style x:Key="stackLayoutBaseStyle" TargetType="StackLayout">
<Setter Property="Orientation" Value="Vertical" />
<Setter Property="Spacing" Value="0" />
</Style>
</ResourceDictionary>
</Application.Resources>
然后只需在需要这种样式的任何StackLayout上使用它
<StackLayout Style="{StaticResource stackLayoutBaseStyle}">
...
</StackLayout>