зеркало из https://github.com/DeGsoft/maui-linux.git
109 строки
3.0 KiB
C#
109 строки
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Xamarin.Forms.Controls
|
|
{
|
|
public class LayoutOptionsGallery : ContentPage
|
|
{
|
|
public LayoutOptionsGallery ()
|
|
{
|
|
Build ();
|
|
}
|
|
|
|
void Build ()
|
|
{
|
|
var mainLayout = new StackLayout {
|
|
BackgroundColor = Color.Silver,
|
|
VerticalOptions = LayoutOptions.FillAndExpand,
|
|
Children = {
|
|
BuildLayoutRegion (),
|
|
BuildLayoutRegion ()
|
|
}
|
|
};
|
|
|
|
var changeOrientationButton = new Button {Text = "Change Orientation"};
|
|
changeOrientationButton.Clicked += (sender, args) => mainLayout.Orientation = (mainLayout.Orientation == StackOrientation.Horizontal) ? StackOrientation.Vertical : StackOrientation.Horizontal;
|
|
|
|
Content = new StackLayout {
|
|
Children = {
|
|
changeOrientationButton,
|
|
mainLayout
|
|
}
|
|
};
|
|
}
|
|
|
|
LayoutOptions StringToLayoutOptions (string options)
|
|
{
|
|
switch (options) {
|
|
case "Start":
|
|
return LayoutOptions.Start;
|
|
case "StartAndExpand":
|
|
return LayoutOptions.StartAndExpand;
|
|
case "Center":
|
|
return LayoutOptions.Center;
|
|
case "CenterAndExpand":
|
|
return LayoutOptions.CenterAndExpand;
|
|
case "End":
|
|
return LayoutOptions.End;
|
|
case "EndAndExpand":
|
|
return LayoutOptions.EndAndExpand;
|
|
case "Fill":
|
|
return LayoutOptions.Fill;
|
|
case "FillAndExpand":
|
|
return LayoutOptions.FillAndExpand;
|
|
}
|
|
throw new InvalidDataException ();
|
|
}
|
|
|
|
View BuildLayoutRegion ()
|
|
{
|
|
// Set these to fill and expand so they just fill their parent which is the thing we actually want to play with.
|
|
var horizontalButton = new Button {
|
|
Text = "H Options",
|
|
HorizontalOptions = LayoutOptions.FillAndExpand,
|
|
VerticalOptions = LayoutOptions.FillAndExpand,
|
|
};
|
|
|
|
var verticalButton = new Button {
|
|
Text = "V Options",
|
|
HorizontalOptions = LayoutOptions.FillAndExpand,
|
|
VerticalOptions = LayoutOptions.FillAndExpand,
|
|
};
|
|
|
|
var result = new StackLayout {
|
|
BackgroundColor = Color.Gray,
|
|
Children = {
|
|
horizontalButton,
|
|
verticalButton
|
|
}
|
|
};
|
|
|
|
horizontalButton.Clicked += async (sender, args) => {
|
|
var selection = await DisplayActionSheet ("Select Horizontal Options", null, null,
|
|
"Start", "StartAndExpand",
|
|
"Center", "CenterAndExpand",
|
|
"End", "EndAndExpand",
|
|
"Fill", "FillAndExpand");
|
|
|
|
result.HorizontalOptions = StringToLayoutOptions (selection);
|
|
};
|
|
|
|
verticalButton.Clicked += async (sender, args) => {
|
|
var selection = await DisplayActionSheet ("Select Horizontal Options", null, null,
|
|
"Start", "StartAndExpand",
|
|
"Center", "CenterAndExpand",
|
|
"End", "EndAndExpand",
|
|
"Fill", "FillAndExpand");
|
|
|
|
result.VerticalOptions = StringToLayoutOptions (selection);
|
|
};
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|