更新整理
This commit is contained in:
143
WPFluent.Gallery/ViewModels/Pages/DialogsAndFlyoutsViewModel.cs
Normal file
143
WPFluent.Gallery/ViewModels/Pages/DialogsAndFlyoutsViewModel.cs
Normal file
@@ -0,0 +1,143 @@
|
||||
// This Source Code Form is subject to the terms of the MIT License.
|
||||
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
|
||||
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
|
||||
// All Rights Reserved.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
using WPFluent.Extensions;
|
||||
using WPFluent.Gallery.Controls;
|
||||
using WPFluent.Gallery.ControlsLookup;
|
||||
using WPFluent.Gallery.Models;
|
||||
using WPFluent.Gallery.Views.Pages;
|
||||
|
||||
namespace WPFluent.Gallery.ViewModels.Pages;
|
||||
|
||||
public partial class DialogsAndFlyoutsViewModel : ViewModel
|
||||
{
|
||||
[ObservableProperty]
|
||||
private ICollection<NavigationCard> _navigationCards = new ObservableCollection<NavigationCard>(
|
||||
ControlPages
|
||||
.FromNamespace(typeof(DialogsAndFlyoutsPage).Namespace!)
|
||||
.Select(x => new NavigationCard()
|
||||
{
|
||||
Name = x.Name,
|
||||
Icon = x.Icon,
|
||||
Description = x.Description,
|
||||
PageType = x.PageType,
|
||||
})
|
||||
);
|
||||
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "relay command")]
|
||||
[RelayCommand]
|
||||
private void OnOpenStandardMessageBox(object sender)
|
||||
{
|
||||
_ = System.Windows.MessageBox.Show("Something about to happen", "I can feel it");
|
||||
}
|
||||
|
||||
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "relay command")]
|
||||
[RelayCommand]
|
||||
private async Task OnOpenCustomMessageBox(object sender)
|
||||
{
|
||||
var uiMessageBox = new WPFluent.Controls.MessageWindow
|
||||
{
|
||||
Title = "WPF UI Message Box",
|
||||
Content =
|
||||
"Never gonna give you up, never gonna let you down Never gonna run around and desert you Never gonna make you cry, never gonna say goodbye",
|
||||
};
|
||||
|
||||
_ = await uiMessageBox.ShowDialogAsync();
|
||||
}
|
||||
#region Snackbar
|
||||
private ControlAppearance _snackbarAppearance = ControlAppearance.Secondary;
|
||||
|
||||
[ObservableProperty]
|
||||
private int _snackbarTimeout = 2;
|
||||
|
||||
private int _snackbarAppearanceComboBoxSelectedIndex = 1;
|
||||
|
||||
public int SnackbarAppearanceComboBoxSelectedIndex
|
||||
{
|
||||
get => _snackbarAppearanceComboBoxSelectedIndex;
|
||||
set
|
||||
{
|
||||
_ = SetProperty(ref _snackbarAppearanceComboBoxSelectedIndex, value);
|
||||
UpdateSnackbarAppearance(value);
|
||||
}
|
||||
}
|
||||
|
||||
ISnackbarService snackbarService;
|
||||
[RelayCommand]
|
||||
private void OnOpenSnackbar(object sender)
|
||||
{
|
||||
snackbarService.Show(
|
||||
"Don't Blame Yourself.",
|
||||
"No Witcher's Ever Died In His Bed.",
|
||||
_snackbarAppearance,
|
||||
new SymbolIcon(SymbolRegular.Fluent24),
|
||||
TimeSpan.FromSeconds(SnackbarTimeout)
|
||||
);
|
||||
}
|
||||
|
||||
private void UpdateSnackbarAppearance(int appearanceIndex)
|
||||
{
|
||||
_snackbarAppearance = appearanceIndex switch
|
||||
{
|
||||
1 => ControlAppearance.Secondary,
|
||||
2 => ControlAppearance.Info,
|
||||
3 => ControlAppearance.Success,
|
||||
4 => ControlAppearance.Caution,
|
||||
5 => ControlAppearance.Danger,
|
||||
6 => ControlAppearance.Light,
|
||||
7 => ControlAppearance.Dark,
|
||||
8 => ControlAppearance.Transparent,
|
||||
_ => ControlAppearance.Primary,
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
[ObservableProperty]
|
||||
private bool _isFlyoutOpen = false;
|
||||
|
||||
[RelayCommand]
|
||||
private void OnButtonClick(object sender)
|
||||
{
|
||||
if (!IsFlyoutOpen)
|
||||
{
|
||||
IsFlyoutOpen = true;
|
||||
}
|
||||
}
|
||||
#region ContentDialog
|
||||
IContentDialogService contentDialogService;
|
||||
[ObservableProperty]
|
||||
private string _dialogResultText = string.Empty;
|
||||
|
||||
[RelayCommand]
|
||||
private async Task OnShowDialog(object content)
|
||||
{
|
||||
ContentDialogResult result = await contentDialogService.ShowSimpleDialogAsync(
|
||||
new SimpleContentDialogCreateOptions()
|
||||
{
|
||||
Title = "Save your work?",
|
||||
Content = content,
|
||||
PrimaryButtonText = "Save",
|
||||
SecondaryButtonText = "Don't Save",
|
||||
CloseButtonText = "Cancel",
|
||||
}
|
||||
);
|
||||
|
||||
DialogResultText = result switch
|
||||
{
|
||||
ContentDialogResult.Primary => "User saved their work",
|
||||
ContentDialogResult.Secondary => "User did not save their work",
|
||||
_ => "User cancelled the dialog",
|
||||
};
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task OnShowSignInContentDialog()
|
||||
{
|
||||
var termsOfUseContentDialog = new TermsOfUseContentDialog(contentDialogService.GetDialogHost());
|
||||
|
||||
_ = await termsOfUseContentDialog.ShowAsync();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user