- Implement ThemeManager for dynamic light/dark theme switching in the application. - Create Wait class for cancellable delays without exceptions for smoother user experience. - Introduce WatchedProductsStore to manage and persist watched products in JSON format. - Add WindowsNotifier for system notifications to inform users of important events. - Develop ProductViewModel to encapsulate product data and manage UI interactions effectively.
59 lines
2.5 KiB
C#
59 lines
2.5 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace AutoBidder.Controls
|
|
{
|
|
/// <summary>
|
|
/// Titolo di sezione con la spiegazione nel suggerimento invece che stampata sotto.
|
|
///
|
|
/// <para>Serve a togliere dalla pagina i paragrafi descrittivi senza perderne il
|
|
/// contenuto: si leggono una volta e poi restano a occupare spazio a ogni apertura
|
|
/// delle Impostazioni. Passando il puntatore il testo torna, esattamente come per i
|
|
/// pulsanti del resto dell'applicazione.</para>
|
|
///
|
|
/// <para>Uso: <c><ctl:HelpHeader Title="Motore di Precisione" Help="…"/></c>.
|
|
/// Senza <see cref="Help"/> si comporta come un titolo semplice, senza pallino.</para>
|
|
/// </summary>
|
|
public partial class HelpHeader : UserControl
|
|
{
|
|
public static readonly DependencyProperty TitleProperty =
|
|
DependencyProperty.Register(nameof(Title), typeof(string), typeof(HelpHeader),
|
|
new PropertyMetadata(""));
|
|
|
|
public static readonly DependencyProperty HelpProperty =
|
|
DependencyProperty.Register(nameof(Help), typeof(string), typeof(HelpHeader),
|
|
new PropertyMetadata("", OnHelpChanged));
|
|
|
|
private static readonly DependencyPropertyKey HelpVisibilityKey =
|
|
DependencyProperty.RegisterReadOnly(nameof(HelpVisibility), typeof(Visibility), typeof(HelpHeader),
|
|
new PropertyMetadata(Visibility.Collapsed));
|
|
|
|
public static readonly DependencyProperty HelpVisibilityProperty = HelpVisibilityKey.DependencyProperty;
|
|
|
|
public HelpHeader() => InitializeComponent();
|
|
|
|
/// <summary>Il titolo della sezione.</summary>
|
|
public string Title
|
|
{
|
|
get => (string)GetValue(TitleProperty);
|
|
set => SetValue(TitleProperty, value);
|
|
}
|
|
|
|
/// <summary>La spiegazione, mostrata al passaggio del puntatore.</summary>
|
|
public string Help
|
|
{
|
|
get => (string)GetValue(HelpProperty);
|
|
set => SetValue(HelpProperty, value);
|
|
}
|
|
|
|
/// <summary>Il pallino compare solo quando c'è davvero qualcosa da leggere.</summary>
|
|
public Visibility HelpVisibility => (Visibility)GetValue(HelpVisibilityProperty);
|
|
|
|
private static void OnHelpChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
var visible = !string.IsNullOrWhiteSpace(e.NewValue as string);
|
|
d.SetValue(HelpVisibilityKey, visible ? Visibility.Visible : Visibility.Collapsed);
|
|
}
|
|
}
|
|
}
|