| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using System.Threading.Tasks;
- using Avalonia.Controls;
- using Avalonia.Interactivity;
- using Avalonia.Layout;
- using Avalonia.Media;
- namespace ControlCatalog.Pages
- {
- public partial class ContentPageFirstLookPage : UserControl
- {
- private static readonly Color[] PageColors =
- [
- Color.FromRgb(0xE3, 0xF2, 0xFD), // blue
- Color.FromRgb(0xF3, 0xE5, 0xF5), // purple
- Color.FromRgb(0xE8, 0xF5, 0xE9), // green
- Color.FromRgb(0xFF, 0xF8, 0xE1), // amber
- Color.FromRgb(0xFB, 0xE9, 0xE7), // deep orange
- ];
- private int _pageCount;
- public ContentPageFirstLookPage()
- {
- InitializeComponent();
- Loaded += OnLoaded;
- }
- private async void OnLoaded(object? sender, RoutedEventArgs e)
- {
- await DemoNav.PushAsync(MakePage("Root Page", "ContentPage inside a NavigationPage.\nUse the options to navigate."));
- UpdateStatus();
- }
- private async void OnPush(object? sender, RoutedEventArgs e)
- {
- _pageCount++;
- await DemoNav.PushAsync(MakePage($"Page {_pageCount}", $"ContentPage #{_pageCount}.\nNavigate back using the back button."));
- UpdateStatus();
- }
- private async void OnPop(object? sender, RoutedEventArgs e)
- {
- await DemoNav.PopAsync();
- UpdateStatus();
- }
- private async void OnPopToRoot(object? sender, RoutedEventArgs e)
- {
- await DemoNav.PopToRootAsync();
- _pageCount = 0;
- UpdateStatus();
- }
- private void UpdateStatus()
- {
- StatusText.Text = $"Depth: {DemoNav.StackDepth} | Current: {DemoNav.CurrentPage?.Header}";
- }
- private ContentPage MakePage(string header, string body) =>
- new ContentPage
- {
- Header = header,
- Background = new SolidColorBrush(PageColors[_pageCount % PageColors.Length]),
- Content = new StackPanel
- {
- HorizontalAlignment = HorizontalAlignment.Center,
- VerticalAlignment = VerticalAlignment.Center,
- Spacing = 10,
- Children =
- {
- new TextBlock
- {
- Text = header,
- FontSize = 20,
- FontWeight = FontWeight.SemiBold,
- HorizontalAlignment = HorizontalAlignment.Center
- },
- new TextBlock
- {
- Text = body,
- FontSize = 13,
- Opacity = 0.7,
- TextWrapping = TextWrapping.Wrap,
- TextAlignment = TextAlignment.Center,
- MaxWidth = 260
- }
- }
- },
- HorizontalContentAlignment = HorizontalAlignment.Stretch,
- VerticalContentAlignment = VerticalAlignment.Stretch
- };
- }
- }
|