当您想要将View放在特定位置时,StackLayout并不是很好 . 当你有很多观点时,这是很好的,你希望它们都以合理的方式出现 .
如果你想要像素完美的东西,有两个很棒的布局:
AbsoluteLayout
RelativeLayout
对于你的具体问题,我会说使用AbsoluteLayout,因为用它来集中Label是非常容易的 . 对于此解决方案,我将Nav Bar的StackLayout更改为AbsoluteLayout,并在代码后面添加了布局参数 .
XAML:
背后的代码:
public MyPage ()
{
InitializeComponent ();
NavBarLayout.Children.Add (
btnBack,
// Adds the Button on the top left corner, with 10% of the navbar's width and 100% height
new Rectangle(0, 0, 0.1, 1),
// The proportional flags tell the layout to scale the value using [0, 1] -> [0%, 100%]
AbsoluteLayoutFlags.HeightProportional | AbsoluteLayoutFlags.WidthProportional
);
NavBarLayout.Children.Add(
labelTitle,
// Using 0.5 will center it and the layout takes the size of the element into account
// 0.5 will center, 1 will right align
// Adds in the center, with 90% of the navbar's width and 100% of height
new Rectangle(0.5, 0.5, 0.9, 1),
AbsoluteLayoutFlags.All
);
}