优化更新代码,添加界面功能并整合
This commit is contained in:
44
WPFluent/Services/SnackbarService.cs
Normal file
44
WPFluent/Services/SnackbarService.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
|
||||
|
||||
|
||||
using WPFluent.Controls;
|
||||
|
||||
namespace WPFluent;
|
||||
|
||||
/// <summary>
|
||||
/// A service that provides methods related to displaying the <see cref="Snackbar"/>.
|
||||
/// </summary>
|
||||
public class SnackbarService : ISnackbarService
|
||||
{
|
||||
private SnackbarPresenter? _presenter;
|
||||
|
||||
private Snackbar? _snackbar;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public SnackbarPresenter? GetSnackbarPresenter() { return _presenter; }
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void SetSnackbarPresenter(SnackbarPresenter contentPresenter) { _presenter = contentPresenter; }
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void Show(string title, string message, ControlAppearance appearance, IconElement? icon, TimeSpan timeout)
|
||||
{
|
||||
if(_presenter is null)
|
||||
{
|
||||
throw new InvalidOperationException($"The SnackbarPresenter was never set");
|
||||
}
|
||||
|
||||
_snackbar ??= new Snackbar(_presenter);
|
||||
|
||||
_snackbar.SetCurrentValue(Snackbar.TitleProperty, title);
|
||||
_snackbar.SetCurrentValue(System.Windows.Controls.ContentControl.ContentProperty, message);
|
||||
_snackbar.SetCurrentValue(Snackbar.AppearanceProperty, appearance);
|
||||
_snackbar.SetCurrentValue(Snackbar.IconProperty, icon);
|
||||
_snackbar.SetCurrentValue(Snackbar.TimeoutProperty, timeout.TotalSeconds == 0 ? DefaultTimeOut : timeout);
|
||||
|
||||
_snackbar.Show(true);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public TimeSpan DefaultTimeOut { get; set; } = TimeSpan.FromSeconds(5);
|
||||
}
|
||||
Reference in New Issue
Block a user