| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- using DryIoc;
- using Prism.Mvvm;
- using SKMC.UI.DesignApp.Models;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Media;
- namespace SKMC.UI.DesignApp.ViewModels
- {
- public class AllIconsViewModel : BindableBase
- {
- public ObservableCollection<IconModel> Icons { get; set; } = new ObservableCollection<IconModel>();
- public AllIconsViewModel()
- {
- LoadAllIcons();
- }
- private void LoadAllIcons()
- {
- var resourceDict = Application.Current.Resources;
- var frameworkDictionaries = resourceDict.MergedDictionaries.FirstOrDefault(d => d.Source != null &&
- d.Source.OriginalString.Contains("/FrameWork.xaml"));
- var iconDictionaries = frameworkDictionaries.MergedDictionaries.FirstOrDefault(d => d.Source != null &&
- d.Source.OriginalString.Contains("/Assets/Icons.xaml"));
- foreach (var key in iconDictionaries.Keys)
- {
- var value = resourceDict[key];
- // 只取 GeometryGroup 或 PathGeometry 类型
- if (value is Geometry geometry && key is string stringKey)
- {
- Icons.Add(new IconModel { Key = stringKey, Data = geometry });
- }
- }
- }
- }
- }
|