using System; using System.Collections; using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml.MarkupExtensions; using Avalonia.Markup.Xaml.Styling; using Avalonia.Markup.Xaml.XamlIl; using Avalonia.Platform; using ControlCatalog.Pages; namespace ControlCatalog { public class MainView : UserControl { public MainView() { AvaloniaXamlLoader.Load(this); if (AvaloniaLocator.Current.GetService().GetRuntimeInfo().IsDesktop) { IList tabItems = ((IList)this.FindControl("Sidebar").Items); tabItems.Add(new TabItem() { Header = "Dialogs", Content = new DialogsPage() }); tabItems.Add(new TabItem() { Header = "Screens", Content = new ScreenPage() }); } var themes = this.Find("Themes"); themes.SelectionChanged += (sender, e) => { switch (themes.SelectedIndex) { case 0: Application.Current.Styles[0] = App.FluentDark; break; case 1: Application.Current.Styles[0] = App.FluentLight; break; case 2: Application.Current.Styles[0] = App.DefaultLight; break; case 3: Application.Current.Styles[0] = App.DefaultDark; break; } }; var decorations = this.Find("Decorations"); decorations.SelectionChanged += (sender, e) => { if (VisualRoot is Window window) window.SystemDecorations = (SystemDecorations)decorations.SelectedIndex; }; var transparencyLevels = this.Find("TransparencyLevels"); transparencyLevels.SelectionChanged += (sender, e) => { if (VisualRoot is Window window) window.TransparencyLevelHint = (WindowTransparencyLevel)transparencyLevels.SelectedIndex; }; } protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); var decorations = this.Find("Decorations"); if (VisualRoot is Window window) decorations.SelectedIndex = (int)window.SystemDecorations; } } }