using F4SD_AdaptableIcon; using F4SD_AdaptableIcon.Enums; using FasdDesktopUi.Basics.Helper; using FasdDesktopUi.Basics.Models; using FasdDesktopUi.Pages.DetailsPage.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace FasdDesktopUi.Basics.UserControls { public partial class DetailedRecommendation : UserControl { #region Properties #region RecommendationData public static readonly DependencyProperty RecommendationDataProperty = DependencyProperty.Register("RecommendationData", typeof(cRecommendationDataModel), typeof(DetailedRecommendation), new PropertyMetadata(new cRecommendationDataModel())); public cRecommendationDataModel RecommendationData { get { return (cRecommendationDataModel)GetValue(RecommendationDataProperty); } set { SetValue(RecommendationDataProperty, value); } } #endregion #region IsCloseButtonVisible public static readonly DependencyProperty IsCloseButtonVisibleProperty = DependencyProperty.Register("IsCloseButtonVisible", typeof(bool), typeof(DetailedRecommendation), new PropertyMetadata(false)); public bool IsCloseButtonVisible { get { return (bool)GetValue(IsCloseButtonVisibleProperty); } set { SetValue(IsCloseButtonVisibleProperty, value); } } #endregion #region Icon public IconData Icon { get { return (IconData)GetValue(IconProperty); } set { SetValue(IconProperty, value); } } public static readonly DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof(IconData), typeof(DetailedRecommendation), new PropertyMetadata(new IconData(enumInternIcons.status_info), HandleIconChanged)); private static void HandleIconChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is DetailedRecommendation recommendation && e.NewValue is IconData iconData) { IconHelper.SetIconValue(recommendation.RecommendationIcon, iconData); } } public string PrimaryIconColorResourceName { get { return (string)GetValue(PrimaryIconColorResourceNameProperty); } set { SetValue(PrimaryIconColorResourceNameProperty, value); } } public static readonly DependencyProperty PrimaryIconColorResourceNameProperty = DependencyProperty.Register("PrimaryIconColorResourceName", typeof(string), typeof(DetailedRecommendation), new PropertyMetadata("Color.Blue", HandleColorChanged)); private static void HandleColorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is DetailedRecommendation recommendation) { recommendation.RecommendationIcon.SetResourceReference(AdaptableIcon.AdaptableIcon.PrimaryIconColorProperty, e.NewValue); } } #endregion public Action CloseButtonClickedAction { get; set; } #endregion public DetailedRecommendation() { InitializeComponent(); } private void CloseButton_Click() { if (CloseButtonClickedAction != null) CloseButtonClickedAction.Invoke(); } private void CloseButton_MouseUp(object sender, MouseButtonEventArgs e) { CloseButton_Click(); } private void CloseButton_TouchDown(object sender, TouchEventArgs e) { CloseButton_Click(); } } }