using System.Configuration; using MaterialDesignDemo; using MaterialDesignDemo.Domain; using MaterialDesignThemes.Wpf; using MaterialDesignThemes.Wpf.Transitions; using System.Windows.Controls; using System; namespace MaterialDesignColors.WpfExample.Domain { public class MainWindowViewModel { public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue) { if (snackbarMessageQueue == null) throw new ArgumentNullException(nameof(snackbarMessageQueue)); DemoItems = new[] { new DemoItem("Home", new Home(), new [] { new DocumentationLink(DocumentationLinkType.Wiki, $"{ConfigurationManager.AppSettings["GitHub"]}/wiki", "WIKI"), DocumentationLink.DemoPageLink() } ), new DemoItem("Palette", new PaletteSelector { DataContext = new PaletteSelectorViewModel() }, new [] { DocumentationLink.WikiLink("Brush-Names", "Brushes"), DocumentationLink.WikiLink("Custom-Palette-Hues", "Custom Palettes"), DocumentationLink.WikiLink("Swatches-and-Recommended-Colors", "Swatches"), DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model"), DocumentationLink.ApiLink() }), new DemoItem("Buttons & Toggles", new Buttons { DataContext = new ButtonsViewModel() } , new [] { DocumentationLink.WikiLink("Button-Styles", "Buttons"), DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model"), DocumentationLink.StyleLink("Button"), DocumentationLink.StyleLink("CheckBox"), DocumentationLink.StyleLink("PopupBox"), DocumentationLink.StyleLink("ToggleButton"), DocumentationLink.ApiLink() }) { VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto }, new DemoItem("Fields", new TextFields(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("TextBox"), DocumentationLink.StyleLink("ComboBox"), }) { VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto }, new DemoItem("Pickers", new Pickers { DataContext = new PickersViewModel()}, new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Clock"), DocumentationLink.StyleLink("DatePicker"), DocumentationLink.ApiLink() }), new DemoItem("Sliders", new Sliders(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Sliders") }), new DemoItem("Chips", new Chips(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Chip"), DocumentationLink.ApiLink() }), new DemoItem("Typography", new Typography(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("TextBlock") }) { VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto, HorizontalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto }, new DemoItem("Cards", new Cards(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Card"), DocumentationLink.ApiLink() }) { VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto }, new DemoItem("Icon Pack", new IconPack { DataContext = new IconPackViewModel(snackbarMessageQueue) }, new [] { DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model"), DocumentationLink.ApiLink() }), new DemoItem("Colour Zones", new ColorZones(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.ApiLink() }), new DemoItem("Lists", new Lists { DataContext = new ListsAndGridsViewModel()}, new [] { DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model", "Domain"), DocumentationLink.StyleLink("ListBox"), DocumentationLink.StyleLink("ListView") }) { VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto }, new DemoItem("Trees", new Trees { DataContext = new TreesViewModel() }, new [] { DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model"), DocumentationLink.StyleLink("TreeView") }), new DemoItem("Grids", new Grids { DataContext = new ListsAndGridsViewModel()}, new [] { DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model", "Domain"), DocumentationLink.StyleLink("DataGrid") }), new DemoItem("Expander", new Expander(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Expander") }), new DemoItem("Group Boxes", new GroupBoxes(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("GroupBox") }), new DemoItem("Menus & Tool Bars", new MenusAndToolBars(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Menu"), DocumentationLink.StyleLink("ToolBar") }), new DemoItem("Progress Indicators", new Progress(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("ProgressBar") }), new DemoItem("Dialogs", new Dialogs { DataContext = new DialogsViewModel()}, new [] { DocumentationLink.WikiLink("Dialogs", "Dialogs"), DocumentationLink.DemoPageLink("Demo View"), DocumentationLink.DemoPageLink("Demo View Model", "Domain"), DocumentationLink.ApiLink() }), new DemoItem("Drawer", new Drawers(), new [] { DocumentationLink.DemoPageLink(), DocumentationLink.ApiLink() }), new DemoItem("Snackbar", new Snackbars(), new [] { DocumentationLink.WikiLink("Snackbar", "Snackbar"), DocumentationLink.DemoPageLink(), DocumentationLink.StyleLink("Snackbar"), DocumentationLink.ApiLink(), DocumentationLink.ApiLink() }), new DemoItem("Transitions", new Transitions(), new [] { DocumentationLink.WikiLink("Transitions", "Transitions"), DocumentationLink.DemoPageLink(), DocumentationLink.ApiLink("Transitions"), DocumentationLink.ApiLink("Transitions"), DocumentationLink.ApiLink("Transitions"), }), new DemoItem("Shadows", new Shadows(), new [] { DocumentationLink.DemoPageLink(), }), }; } public DemoItem[] DemoItems { get; } } }