我知道如何展示一个内容页面,但是如何根据方向选择正确的布局呢?我想编写两个 XAML 文件:一个用于垂直方向,另一个用于水平方向。当方向改变时,是否有可能切换 XAML 文件呢?
我知道如何展示一个内容页面,但是如何根据方向选择正确的布局呢?我想编写两个 XAML 文件:一个用于垂直方向,另一个用于水平方向。当方向改变时,是否有可能切换 XAML 文件呢?
Xamarin.Forms在共享代码中并没有提供任何本地事件来通知您的应用程序方向更改。但是,当页面的宽度或高度发生变化时,Page的SizeChanged事件会触发。当页面的宽度大于高度时,设备处于横向模式。
protected override void OnSizeAllocated (double width, double height){
base.OnSizeAllocated (width, height);
if (width != this.width || height != this.height) {
this.width = width;
this.height = height;
if (width > height) {
// landscape
} else {
// portrait
}
}
}
使用这个功能,您可以根据设备方向编程更改页面内容为新的内容。
Content = // new content here.
如果有耐心,您可以尝试使用相同的XAML,但仅更改某些视图的方向,例如此处的示例。
源代码在这里。