Files
Mimante/Mimante/Controls/HelpHeader.xaml.cs
T
Alby96 7ca504a70a Add utility classes for theme management, waiting, watched products, and notifications
- 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.
2026-08-04 21:49:53 +02:00

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>&lt;ctl:HelpHeader Title="Motore di Precisione" Help="…"/&gt;</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);
}
}
}