Example #1
0
        /// <summary>
        /// Convertit une valeur.
        /// </summary>
        /// <param name="value">Valeur produite par la source de liaison.</param>
        /// <param name="targetType">Type de la propriété de cible de liaison.</param>
        /// <param name="parameter">Paramètre de convertisseur à utiliser.</param>
        /// <param name="culture">Culture à utiliser dans le convertisseur.</param>
        /// <returns>
        /// Valeur convertie. Si la méthode retourne null, la valeur null valide est utilisée.
        /// </returns>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!(value is FileInfo fileInfo))
            {
                return(null);
            }

            if (this.ListeExtensionIcone.ContainsKey(fileInfo.Extension))
            {
                return(this.ListeExtensionIcone[fileInfo.Extension]);
            }
            using (var sysicon = Icon.ExtractAssociatedIcon(fileInfo.FullName))
            {
                if (sysicon != null)
                {
                    var icon = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
                        sysicon.Handle,
                        Int32Rect.Empty,
                        BitmapSizeOptions.FromEmptyOptions());
                    return(icon);
                }
            }

            // icon par défaut
            return(BitmapHelpers.ToBitmapImage(ResourceImage.file));
        }
 /// <summary>
 ///     Convertit une valeur.
 /// </summary>
 /// <param name="value">Valeur produite par la source de liaison.</param>
 /// <param name="targetType">Type de la propriété de cible de liaison.</param>
 /// <param name="parameter">Paramètre de convertisseur à utiliser.</param>
 /// <param name="culture">Culture à utiliser dans le convertisseur.</param>
 /// <returns>
 ///     Valeur convertie. Si la méthode retourne null, la valeur null valide est utilisée.
 /// </returns>
 public object Convert(object value, Type targetType,
                       object parameter, CultureInfo culture)
 {
     if (value != null && ((string)value).Contains(@"\"))
     {
         return(BitmapHelpers.ToBitmapImage(ResourceImage.drive));
     }
     return(BitmapHelpers.ToBitmapImage(ResourceImage.folder));
 }