using System.Windows; using System.Windows.Controls; using System.Windows.Markup; namespace Controls { /// /// Interaction logic for /// [ContentProperty(nameof(Symbol))] public class MagicSymbolControl : ContentControl { /// /// Dependency property for property /// public static readonly DependencyProperty SymbolProperty = DependencyProperty.Register(nameof(Symbol), typeof(object), typeof(MagicSymbolControl), new PropertyMetadata(default, PropertyChangedCallback)); private static void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is MagicSymbolControl magic) { magic.Content = MagicSymbolConverter.ConvertToFrameworkElement(e.NewValue); } } /// /// Symbol to show /// public object Symbol { get => GetValue(SymbolProperty); set => SetValue(SymbolProperty, value); } /// /// Creates a new instance of /// public MagicSymbolControl() { Focusable = false; } } }