Files
ShrlAlgoToolkit/WPFluent.Gallery/ViewModels/Windows/MainWindowViewModel.cs

76 lines
3.1 KiB
C#
Raw Normal View History

2025-04-24 20:56:44 +08:00
using System.Windows.Controls;
using WPFluent.Gallery.Views;
using WPFluent.Gallery.Views.Pages;
using WPFluent.Gallery.Views.Pages.Collections;
using WPFluent.Gallery.Views.Pages.DesignGuidance;
using WPFluent.Gallery.Views.Pages.Navigation;
using WPFluent.Gallery.Views.Pages.Windows;
namespace WPFluent.Gallery.ViewModels.Windows;
public partial class MainWindowViewModel : ViewModel
{
[ObservableProperty]
private string applicationTitle = "WPF UI Gallery";
[ObservableProperty]
private ObservableCollection<object> menuItems =
[
new NavigationViewItem("Home", SymbolRegular.Home24, typeof(DashboardPage)),
new NavigationViewItem()
{
Content = "Design guidance",
Icon = new SymbolIcon { Symbol = SymbolRegular.DesignIdeas24 },
MenuItemsSource = new object[]
{
new NavigationViewItem("Typography", SymbolRegular.TextFont24, typeof(TypographyPage)),
new NavigationViewItem("Icons", SymbolRegular.Diversity24, typeof(IconsPage)),
new NavigationViewItem("Colors", SymbolRegular.Color24, typeof(ColorsPage)),
},
},
//new NavigationViewItem("All samples", SymbolRegular.List24, typeof(AllControlsPage)),
new NavigationViewItemSeparator(),
new NavigationViewItem("Basic Input", SymbolRegular.CheckboxChecked24, typeof(BasicInputPage)),
new NavigationViewItem
{
Content = "Collections",
Icon = new SymbolIcon { Symbol = SymbolRegular.Table24 },
TargetPageType = typeof(CollectionsPage),
},
new NavigationViewItem("Date & time", SymbolRegular.CalendarClock24, typeof(DateAndTimePage)),
new NavigationViewItem("Dialogs & flyouts", SymbolRegular.Chat24, typeof(DialogsAndFlyoutsPage)),
#if DEBUG
new NavigationViewItem("Layout", SymbolRegular.News24, typeof(LayoutPage)),
#endif
new NavigationViewItem
{
Content = "Media",
Icon = new SymbolIcon { Symbol = SymbolRegular.PlayCircle24 },
TargetPageType = typeof(MediaPage),
},
new NavigationViewItem("Navigation", SymbolRegular.Navigation24, typeof(NavigationPage)),
new NavigationViewItem(
"Status & info",
SymbolRegular.ChatBubblesQuestion24,
typeof(StatusAndInfoPage)
),
new NavigationViewItem("Text", SymbolRegular.DrawText24, typeof(TextPage)),
new NavigationViewItem("System", SymbolRegular.Desktop24, typeof(OpSystemPage)),
new NavigationViewItem("Windows", SymbolRegular.WindowApps24, typeof(WindowsPage)),
];
[ObservableProperty]
private ObservableCollection<object> footerMenuItems =
[
new NavigationViewItem("Settings", SymbolRegular.Settings24, typeof(SettingsPage)),
];
[ObservableProperty]
private ObservableCollection<WPFluent.Controls.MenuItem> trayMenuItems =
[
new WPFluent.Controls.MenuItem { Header = "Home", Tag = "tray_home" },
new WPFluent.Controls.MenuItem { Header = "Close", Tag = "tray_close" },
];
}