maui-linux/Xamarin.Forms.Controls/GalleryPages/LayoutOptionsGallery.cs

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;
}
}
}