diff --git a/ILSpy/Analyzers/TreeNodes/AnalyzedModuleTreeNode.cs b/ILSpy/Analyzers/TreeNodes/AnalyzedModuleTreeNode.cs
index 1c7c50175..606b72f80 100644
--- a/ILSpy/Analyzers/TreeNodes/AnalyzedModuleTreeNode.cs
+++ b/ILSpy/Analyzers/TreeNodes/AnalyzedModuleTreeNode.cs
@@ -33,7 +33,7 @@ namespace ICSharpCode.ILSpy.Analyzers.TreeNodes
this.LazyLoading = true;
}
- public override object Icon => Images.GetIcon(Images.Assembly);
+ public override object Icon => Images.Assembly;
public override object Text => analyzedModule.AssemblyName;
diff --git a/ILSpy/Images/AssemblyList.xaml b/ILSpy/Images/AssemblyList.xaml
index fc8715236..33a32f40a 100644
--- a/ILSpy/Images/AssemblyList.xaml
+++ b/ILSpy/Images/AssemblyList.xaml
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/AssemblyListGAC.svg b/ILSpy/Images/AssemblyListGAC.svg
index 696a704f8..da520a820 100644
--- a/ILSpy/Images/AssemblyListGAC.svg
+++ b/ILSpy/Images/AssemblyListGAC.svg
@@ -15,10 +15,10 @@
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"
id="svg34"
sodipodi:docname="AssemblyListGAC.svg"
- inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">image/svg+xml
\ No newline at end of file
+ inkscape:current-layer="svg34" />
\ No newline at end of file
diff --git a/ILSpy/Images/AssemblyListGAC.xaml b/ILSpy/Images/AssemblyListGAC.xaml
index 82885d089..4c8026cc8 100644
--- a/ILSpy/Images/AssemblyListGAC.xaml
+++ b/ILSpy/Images/AssemblyListGAC.xaml
@@ -1,97 +1,44 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Back.xaml b/ILSpy/Images/Back.xaml
index ac68f11e4..7ddf0a4df 100644
--- a/ILSpy/Images/Back.xaml
+++ b/ILSpy/Images/Back.xaml
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/CollapseAll.xaml b/ILSpy/Images/CollapseAll.xaml
index 8fefbcf4f..e0d9a09cd 100644
--- a/ILSpy/Images/CollapseAll.xaml
+++ b/ILSpy/Images/CollapseAll.xaml
@@ -1,21 +1,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Forward.xaml b/ILSpy/Images/Forward.xaml
index 77f14b469..85efa5c2a 100644
--- a/ILSpy/Images/Forward.xaml
+++ b/ILSpy/Images/Forward.xaml
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Images.cs b/ILSpy/Images/Images.cs
index bf6442bc1..bd32b3fbb 100644
--- a/ILSpy/Images/Images.cs
+++ b/ILSpy/Images/Images.cs
@@ -37,100 +37,89 @@ namespace ICSharpCode.ILSpy
return image;
}
- static object Load(string icon)
+ static ImageSource Load(string icon)
{
icon = "Images/" + icon;
if (icon.EndsWith(".png", StringComparison.OrdinalIgnoreCase))
return LoadImage(null, icon);
Uri uri = GetUri(null, icon + ".xaml");
if (ResourceExists(uri)) {
- return LoadDrawingGroup(null, icon);
+ return new DrawingImage(LoadDrawingGroup(null, icon));
}
return LoadImage(null, icon + ".png");
}
- public static readonly BitmapImage Breakpoint = LoadBitmap("Breakpoint");
- public static readonly BitmapImage CurrentLine = LoadBitmap("CurrentLine");
+ public static readonly ImageSource Breakpoint = LoadBitmap("Breakpoint");
+ public static readonly ImageSource CurrentLine = LoadBitmap("CurrentLine");
- public static readonly BitmapImage ViewCode = LoadBitmap("ViewCode");
- public static readonly BitmapImage Save = LoadBitmap("SaveFile");
- public static readonly BitmapImage OK = LoadBitmap("OK");
+ public static readonly ImageSource ViewCode = LoadBitmap("ViewCode");
+ public static readonly ImageSource Save = LoadBitmap("SaveFile");
+ public static readonly ImageSource OK = LoadBitmap("OK");
- public static readonly BitmapImage Delete = LoadBitmap("Delete");
- public static readonly BitmapImage Search = LoadBitmap("Search");
+ public static readonly ImageSource Delete = LoadBitmap("Delete");
+ public static readonly ImageSource Search = LoadBitmap("Search");
- public static readonly object Assembly = Load("Assembly");
- public static readonly object AssemblyWarning = Load("AssemblyWarning");
- public static readonly object AssemblyLoading = Load("FindAssembly");
+ public static readonly ImageSource Assembly = Load("Assembly");
+ public static readonly ImageSource AssemblyWarning = Load("AssemblyWarning");
+ public static readonly ImageSource AssemblyLoading = Load("FindAssembly");
- public static readonly object Library = Load("Library");
- public static readonly object Namespace = Load("Namespace");
+ public static readonly ImageSource Library = Load("Library");
+ public static readonly ImageSource Namespace = Load("Namespace");
- public static readonly object ReferenceFolder = Load("ReferenceFolder");
+ public static readonly ImageSource ReferenceFolder = Load("ReferenceFolder");
- public static readonly object SubTypes = Load("SubTypes");
- public static readonly object SuperTypes = Load("SuperTypes");
+ public static readonly ImageSource SubTypes = Load("SubTypes");
+ public static readonly ImageSource SuperTypes = Load("SuperTypes");
- public static readonly object FolderOpen = Load("Folder.Open");
- public static readonly object FolderClosed = Load("Folder.Closed");
+ public static readonly ImageSource FolderOpen = Load("Folder.Open");
+ public static readonly ImageSource FolderClosed = Load("Folder.Closed");
- public static readonly object Resource = Load("Resource");
- public static readonly object ResourceImage = Load("ResourceImage");
- public static readonly object ResourceResourcesFile = Load("ResourceResourcesFile");
- public static readonly object ResourceXml = Load("ResourceXml");
- public static readonly object ResourceXsd = Load("ResourceXslt");
- public static readonly object ResourceXslt = Load("ResourceXslt");
+ public static readonly ImageSource Resource = Load("Resource");
+ public static readonly ImageSource ResourceImage = Load("ResourceImage");
+ public static readonly ImageSource ResourceResourcesFile = Load("ResourceResourcesFile");
+ public static readonly ImageSource ResourceXml = Load("ResourceXml");
+ public static readonly ImageSource ResourceXsd = Load("ResourceXslt");
+ public static readonly ImageSource ResourceXslt = Load("ResourceXslt");
- public static readonly object Class = Load("Class");
- public static readonly object Struct = Load("Struct");
- public static readonly object Interface = Load("Interface");
- public static readonly object Delegate = Load("Delegate");
- public static readonly object Enum = Load("Enum");
+ public static readonly ImageSource Class = Load("Class");
+ public static readonly ImageSource Struct = Load("Struct");
+ public static readonly ImageSource Interface = Load("Interface");
+ public static readonly ImageSource Delegate = Load("Delegate");
+ public static readonly ImageSource Enum = Load("Enum");
- public static readonly object Field = Load("Field");
- public static readonly object FieldReadOnly = Load("Field");
- public static readonly object Literal = Load("Literal");
- public static readonly object EnumValue = Load("EnumValue");
+ public static readonly ImageSource Field = Load("Field");
+ public static readonly ImageSource FieldReadOnly = Load("Field");
+ public static readonly ImageSource Literal = Load("Literal");
+ public static readonly ImageSource EnumValue = Load("EnumValue");
- public static readonly object Method = Load("Method");
- public static readonly object Constructor = Load("Method");
- public static readonly object VirtualMethod = Load("Method");
- public static readonly object Operator = Load("Operator");
- public static readonly object ExtensionMethod = Load("ExtensionMethod");
- public static readonly object PInvokeMethod = Load("Method");
+ public static readonly ImageSource Method = Load("Method");
+ public static readonly ImageSource Constructor = Load("Method");
+ public static readonly ImageSource VirtualMethod = Load("Method");
+ public static readonly ImageSource Operator = Load("Operator");
+ public static readonly ImageSource ExtensionMethod = Load("ExtensionMethod");
+ public static readonly ImageSource PInvokeMethod = Load("Method");
- public static readonly object Property = Load("Property");
- public static readonly object Indexer = Load("Indexer");
+ public static readonly ImageSource Property = Load("Property");
+ public static readonly ImageSource Indexer = Load("Indexer");
- public static readonly object Event = Load("Event");
+ public static readonly ImageSource Event = Load("Event");
- private static readonly object OverlayProtected = Load("OverlayProtected");
- private static readonly object OverlayInternal = Load("OverlayInternal");
- private static readonly object OverlayProtectedInternal = Load("OverlayProtectedInternal");
- private static readonly object OverlayPrivate = Load("OverlayPrivate");
- private static readonly object OverlayPrivateProtected = Load("OverlayPrivateProtected");
- private static readonly object OverlayCompilerControlled = Load("OverlayCompilerControlled");
+ private static readonly ImageSource OverlayProtected = Load("OverlayProtected");
+ private static readonly ImageSource OverlayInternal = Load("OverlayInternal");
+ private static readonly ImageSource OverlayProtectedInternal = Load("OverlayProtectedInternal");
+ private static readonly ImageSource OverlayPrivate = Load("OverlayPrivate");
+ private static readonly ImageSource OverlayPrivateProtected = Load("OverlayPrivateProtected");
+ private static readonly ImageSource OverlayCompilerControlled = Load("OverlayCompilerControlled");
- private static readonly object OverlayStatic = Load("OverlayStatic");
+ private static readonly ImageSource OverlayStatic = Load("OverlayStatic");
- public static object GetIcon(object imageOrVector)
- {
- if (imageOrVector is BitmapImage img)
- return img;
- return new Rectangle {
- Width = 16,
- Height = 16,
- Fill = new DrawingBrush((DrawingGroup)imageOrVector)
- };
- }
-
- public static object Load(object part, string icon)
+ public static ImageSource Load(object part, string icon)
{
if (icon.EndsWith(".png", StringComparison.OrdinalIgnoreCase))
return LoadImage(part, icon);
Uri uri = GetUri(part, icon + ".xaml");
if (ResourceExists(uri)) {
- return LoadVector(part, icon);
+ return new DrawingImage(LoadDrawingGroup(part, icon));
}
return LoadImage(part, icon + ".png");
}
@@ -143,14 +132,9 @@ namespace ICSharpCode.ILSpy
return image;
}
- public static Viewbox LoadVector(object part, string icon)
- {
- return (Viewbox)Application.LoadComponent(GetUri(part, icon + ".xaml", absolute: false));
- }
-
- public static DrawingGroup LoadDrawingGroup(object part, string icon)
+ public static Drawing LoadDrawingGroup(object part, string icon)
{
- return (DrawingGroup)Application.LoadComponent(GetUri(part, icon + ".xaml", absolute: false));
+ return (Drawing)Application.LoadComponent(GetUri(part, icon + ".xaml", absolute: false));
}
private static Uri GetUri(object part, string icon, bool absolute = true)
@@ -189,13 +173,13 @@ namespace ICSharpCode.ILSpy
private static readonly TypeIconCache typeIconCache = new TypeIconCache();
private static readonly MemberIconCache memberIconCache = new MemberIconCache();
- public static object GetIcon(TypeIcon icon, AccessOverlayIcon overlay, bool isStatic = false)
+ public static ImageSource GetIcon(TypeIcon icon, AccessOverlayIcon overlay, bool isStatic = false)
{
lock (typeIconCache)
return typeIconCache.GetIcon(icon, overlay, isStatic);
}
- public static object GetIcon(MemberIcon icon, AccessOverlayIcon overlay, bool isStatic)
+ public static ImageSource GetIcon(MemberIcon icon, AccessOverlayIcon overlay, bool isStatic)
{
lock (memberIconCache)
return memberIconCache.GetIcon(icon, overlay, isStatic);
@@ -214,9 +198,9 @@ namespace ICSharpCode.ILSpy
PreloadPublicIconToCache(TypeIcon.Delegate, Images.Delegate);
}
- protected override object GetBaseImage(TypeIcon icon)
+ protected override ImageSource GetBaseImage(TypeIcon icon)
{
- object baseImage;
+ ImageSource baseImage;
switch (icon) {
case TypeIcon.Class:
baseImage = Images.Class;
@@ -260,9 +244,9 @@ namespace ICSharpCode.ILSpy
PreloadPublicIconToCache(MemberIcon.Event, Images.Event);
}
- protected override object GetBaseImage(MemberIcon icon)
+ protected override ImageSource GetBaseImage(MemberIcon icon)
{
- object baseImage;
+ ImageSource baseImage;
switch (icon) {
case MemberIcon.Field:
baseImage = Images.Field;
@@ -313,42 +297,39 @@ namespace ICSharpCode.ILSpy
private abstract class IconCache
{
- private readonly Dictionary<(T, AccessOverlayIcon, bool), object> cache = new Dictionary<(T, AccessOverlayIcon, bool), object>();
+ private readonly Dictionary<(T, AccessOverlayIcon, bool), ImageSource> cache = new Dictionary<(T, AccessOverlayIcon, bool), ImageSource>();
- protected void PreloadPublicIconToCache(T icon, object image)
+ protected void PreloadPublicIconToCache(T icon, ImageSource image)
{
var iconKey = (icon, AccessOverlayIcon.Public, false);
- if (image is ImageSource img)
- cache.Add(iconKey, img);
- else
- cache.Add(iconKey, new DrawingImage((DrawingGroup)image));
+ cache.Add(iconKey, image);
}
- public object GetIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
+ public ImageSource GetIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
{
var iconKey = (icon, overlay, isStatic);
if (cache.ContainsKey(iconKey)) {
return cache[iconKey];
} else {
- object result = BuildMemberIcon(icon, overlay, isStatic);
+ ImageSource result = BuildMemberIcon(icon, overlay, isStatic);
cache.Add(iconKey, result);
return result;
}
}
- private object BuildMemberIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
+ private ImageSource BuildMemberIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
{
- object baseImage = GetBaseImage(icon);
- object overlayImage = GetOverlayImage(overlay);
+ ImageSource baseImage = GetBaseImage(icon);
+ ImageSource overlayImage = GetOverlayImage(overlay);
return CreateOverlayImage(baseImage, overlayImage, isStatic);
}
- protected abstract object GetBaseImage(T icon);
+ protected abstract ImageSource GetBaseImage(T icon);
- private static object GetOverlayImage(AccessOverlayIcon overlay)
+ private static ImageSource GetOverlayImage(AccessOverlayIcon overlay)
{
- object overlayImage;
+ ImageSource overlayImage;
switch (overlay) {
case AccessOverlayIcon.Public:
overlayImage = null;
@@ -379,16 +360,11 @@ namespace ICSharpCode.ILSpy
private static readonly Rect iconRect = new Rect(0, 0, 16, 16);
- private static ImageSource CreateOverlayImage(object baseImage, object overlay, bool isStatic)
+ private static ImageSource CreateOverlayImage(ImageSource baseImage, ImageSource overlay, bool isStatic)
{
var group = new DrawingGroup();
- Drawing baseDrawing;
- if (baseImage is ImageSource img) {
- baseDrawing = new ImageDrawing(img, iconRect);
- } else {
- baseDrawing = (DrawingGroup)baseImage;
- }
+ Drawing baseDrawing = new ImageDrawing(baseImage, iconRect);
if (overlay != null || isStatic) {
var nestedGroup = new DrawingGroup { Transform = new ScaleTransform(0.8, 0.8) };
@@ -399,17 +375,11 @@ namespace ICSharpCode.ILSpy
}
if (overlay != null) {
- if (overlay is ImageSource overlayImage)
- group.Children.Add(new ImageDrawing(overlayImage, iconRect));
- else
- group.Children.Add((DrawingGroup)overlay);
+ group.Children.Add(new ImageDrawing(overlay, iconRect));
}
if (isStatic) {
- if (Images.OverlayStatic is ImageSource staticImg)
- group.Children.Add(new ImageDrawing(staticImg, iconRect));
- else
- group.Children.Add((DrawingGroup)Images.OverlayStatic);
+ group.Children.Add(new ImageDrawing(Images.OverlayStatic, iconRect));
}
var image = new DrawingImage(group);
diff --git a/ILSpy/Images/Open.xaml b/ILSpy/Images/Open.xaml
index 624c8619f..7c2b6b50e 100644
--- a/ILSpy/Images/Open.xaml
+++ b/ILSpy/Images/Open.xaml
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Refresh.xaml b/ILSpy/Images/Refresh.xaml
index 99eeaa8c5..e6e13697a 100644
--- a/ILSpy/Images/Refresh.xaml
+++ b/ILSpy/Images/Refresh.xaml
@@ -1,19 +1,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Save.xaml b/ILSpy/Images/Save.xaml
index 5742adf56..2a74dc9d4 100644
--- a/ILSpy/Images/Save.xaml
+++ b/ILSpy/Images/Save.xaml
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Search.xaml b/ILSpy/Images/Search.xaml
index b86ad5db5..f1bb3be67 100644
--- a/ILSpy/Images/Search.xaml
+++ b/ILSpy/Images/Search.xaml
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Images/Sort.xaml b/ILSpy/Images/Sort.xaml
index 440c50a3d..7c8ebee2e 100644
--- a/ILSpy/Images/Sort.xaml
+++ b/ILSpy/Images/Sort.xaml
@@ -1,21 +1,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy/Search/AbstractSearchStrategy.cs b/ILSpy/Search/AbstractSearchStrategy.cs
index 1f0b13352..3ac17a179 100644
--- a/ILSpy/Search/AbstractSearchStrategy.cs
+++ b/ILSpy/Search/AbstractSearchStrategy.cs
@@ -157,9 +157,7 @@ namespace ICSharpCode.ILSpy.Search
return new SearchResult {
Member = item,
Fitness = CalculateFitness(item),
- Image = GetIcon(item),
Name = GetLanguageSpecificName(item),
- LocationImage = declaringType != null ? TypeTreeNode.GetIcon(declaringType) : Images.Namespace,
Location = declaringType != null ? language.TypeToString(declaringType, includeNamespace: true) : item.Namespace,
ToolTip = item.ParentModule.PEFile?.FileName
};
@@ -204,7 +202,7 @@ namespace ICSharpCode.ILSpy.Search
}
}
- object GetIcon(IEntity member)
+ internal static object GetIcon(IEntity member)
{
switch (member) {
case ITypeDefinition t:
diff --git a/ILSpy/Search/SearchPane.cs b/ILSpy/Search/SearchPane.cs
index bb2250ef7..44f7f8a77 100644
--- a/ILSpy/Search/SearchPane.cs
+++ b/ILSpy/Search/SearchPane.cs
@@ -373,22 +373,41 @@ namespace ICSharpCode.ILSpy
public sealed class SearchResult : IMemberTreeNode
{
- public static readonly System.Collections.Generic.IComparer Comparer = new SearchResultComparer();
-
+ object image;
+ object locationImage;
+
+ public static readonly IComparer Comparer = new SearchResultComparer();
+
public IEntity Member { get; set; }
public float Fitness { get; set; }
-
+
public string Location { get; set; }
public string Name { get; set; }
public object ToolTip { get; set; }
- public object Image { get; set; }
- public object LocationImage { get; set; }
-
+
+ public object Image {
+ get {
+ if (image == null) {
+ image = AbstractSearchStrategy.GetIcon(Member);
+ }
+ return image;
+ }
+ }
+
+ public object LocationImage {
+ get {
+ if (locationImage == null) {
+ locationImage = Member.DeclaringTypeDefinition != null ? TypeTreeNode.GetIcon(Member.DeclaringTypeDefinition) : Images.Namespace;
+ }
+ return locationImage;
+ }
+ }
+
public override string ToString()
{
return Name;
}
-
+
class SearchResultComparer : System.Collections.Generic.IComparer
{
public int Compare(SearchResult x, SearchResult y)
diff --git a/ILSpy/TreeNodes/AssemblyReferenceTreeNode.cs b/ILSpy/TreeNodes/AssemblyReferenceTreeNode.cs
index 2aee874dd..0a64b9ea7 100644
--- a/ILSpy/TreeNodes/AssemblyReferenceTreeNode.cs
+++ b/ILSpy/TreeNodes/AssemblyReferenceTreeNode.cs
@@ -43,7 +43,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
get { return r.Name + ((System.Reflection.Metadata.EntityHandle)r.Handle).ToSuffixString(); }
}
- public override object Icon => Images.GetIcon(Images.Assembly);
+ public override object Icon => Images.Assembly;
public override bool ShowExpander {
get {
diff --git a/ILSpy/TreeNodes/AssemblyTreeNode.cs b/ILSpy/TreeNodes/AssemblyTreeNode.cs
index 2db72b09e..c138c614e 100644
--- a/ILSpy/TreeNodes/AssemblyTreeNode.cs
+++ b/ILSpy/TreeNodes/AssemblyTreeNode.cs
@@ -70,9 +70,9 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override object Icon {
get {
if (LoadedAssembly.IsLoaded) {
- return LoadedAssembly.HasLoadError ? Images.GetIcon(Images.AssemblyWarning) : Images.GetIcon(Images.Assembly);
+ return LoadedAssembly.HasLoadError ? Images.AssemblyWarning : Images.Assembly;
} else {
- return Images.GetIcon(Images.AssemblyLoading);
+ return Images.AssemblyLoading;
}
}
}
diff --git a/ILSpy/TreeNodes/BaseTypesEntryNode.cs b/ILSpy/TreeNodes/BaseTypesEntryNode.cs
index 70aaa280e..df8121e84 100644
--- a/ILSpy/TreeNodes/BaseTypesEntryNode.cs
+++ b/ILSpy/TreeNodes/BaseTypesEntryNode.cs
@@ -70,7 +70,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override object Text => this.Language.TypeToString(type, includeNamespace: true) + handle.ToSuffixString();
public override object Icon =>
- isInterface ? Images.GetIcon(Images.Interface) : Images.GetIcon(Images.Class);
+ isInterface ? Images.Interface : Images.Class;
protected override void LoadChildren()
{
diff --git a/ILSpy/TreeNodes/BaseTypesTreeNode.cs b/ILSpy/TreeNodes/BaseTypesTreeNode.cs
index 1ae86016d..8cbdb2304 100644
--- a/ILSpy/TreeNodes/BaseTypesTreeNode.cs
+++ b/ILSpy/TreeNodes/BaseTypesTreeNode.cs
@@ -44,7 +44,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override object Text => "Base Types";
- public override object Icon => Images.GetIcon(Images.SuperTypes);
+ public override object Icon => Images.SuperTypes;
protected override void LoadChildren()
{
diff --git a/ILSpy/TreeNodes/DerivedTypesTreeNode.cs b/ILSpy/TreeNodes/DerivedTypesTreeNode.cs
index 0e85a1c5e..3b6e50a30 100644
--- a/ILSpy/TreeNodes/DerivedTypesTreeNode.cs
+++ b/ILSpy/TreeNodes/DerivedTypesTreeNode.cs
@@ -46,7 +46,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override object Text => Resources.DerivedTypes;
- public override object Icon => Images.GetIcon(Images.SubTypes);
+ public override object Icon => Images.SubTypes;
protected override void LoadChildren()
{
diff --git a/ILSpy/TreeNodes/ModuleReferenceTreeNode.cs b/ILSpy/TreeNodes/ModuleReferenceTreeNode.cs
index 4a5f5a6e7..4d51f46af 100644
--- a/ILSpy/TreeNodes/ModuleReferenceTreeNode.cs
+++ b/ILSpy/TreeNodes/ModuleReferenceTreeNode.cs
@@ -61,7 +61,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
get { return moduleName + ((EntityHandle)handle).ToSuffixString(); }
}
- public override object Icon => Images.GetIcon(Images.Library);
+ public override object Icon => Images.Library;
public override void ActivateItem(System.Windows.RoutedEventArgs e)
{
diff --git a/ILSpy/TreeNodes/NamespaceTreeNode.cs b/ILSpy/TreeNodes/NamespaceTreeNode.cs
index a189b79b3..d054603dc 100644
--- a/ILSpy/TreeNodes/NamespaceTreeNode.cs
+++ b/ILSpy/TreeNodes/NamespaceTreeNode.cs
@@ -45,7 +45,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
public override object Icon {
- get { return Images.GetIcon(Images.Namespace); }
+ get { return Images.Namespace; }
}
public override FilterResult Filter(FilterSettings settings)
diff --git a/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs b/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs
index e59a409f0..a23a4bfe5 100644
--- a/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs
+++ b/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs
@@ -18,7 +18,6 @@
using System;
using System.Linq;
-using SRM = System.Reflection.Metadata;
using System.Windows.Threading;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.Metadata;
@@ -40,15 +39,11 @@ namespace ICSharpCode.ILSpy.TreeNodes
this.parentAssembly = parentAssembly;
this.LazyLoading = true;
}
-
- public override object Text {
- get { return Resources.References; }
- }
-
- public override object Icon {
- get { return Images.GetIcon(Images.ReferenceFolder); }
- }
-
+
+ public override object Text => Resources.References;
+
+ public override object Icon => Images.ReferenceFolder;
+
protected override void LoadChildren()
{
var metadata = module.Metadata;
diff --git a/ILSpy/TreeNodes/ResourceListTreeNode.cs b/ILSpy/TreeNodes/ResourceListTreeNode.cs
index 8f9b21f91..e379160a2 100644
--- a/ILSpy/TreeNodes/ResourceListTreeNode.cs
+++ b/ILSpy/TreeNodes/ResourceListTreeNode.cs
@@ -37,19 +37,13 @@ namespace ICSharpCode.ILSpy.TreeNodes
this.LazyLoading = true;
this.module = module;
}
-
- public override object Text {
- get { return Resources._Resources; }
- }
-
- public override object Icon {
- get { return Images.GetIcon(Images.FolderClosed); }
- }
- public override object ExpandedIcon {
- get { return Images.GetIcon(Images.FolderOpen); }
- }
-
+ public override object Text => Resources._Resources;
+
+ public override object Icon => Images.FolderClosed;
+
+ public override object ExpandedIcon => Images.FolderOpen;
+
protected override void LoadChildren()
{
foreach (Resource r in module.Resources.OrderBy(m => m.Name, NaturalStringComparer.Instance))
diff --git a/ILSpy/TreeNodes/ResourceNodes/CursorResourceEntryNode.cs b/ILSpy/TreeNodes/ResourceNodes/CursorResourceEntryNode.cs
index 1095a7ab8..156590b8d 100644
--- a/ILSpy/TreeNodes/ResourceNodes/CursorResourceEntryNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/CursorResourceEntryNode.cs
@@ -59,10 +59,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
}
- public override object Icon
- {
- get { return Images.GetIcon(Images.ResourceImage); }
- }
+ public override object Icon => Images.ResourceImage;
public override bool View(DecompilerTextView textView)
{
diff --git a/ILSpy/TreeNodes/ResourceNodes/IconResourceEntryNode.cs b/ILSpy/TreeNodes/ResourceNodes/IconResourceEntryNode.cs
index bacdb7689..989450c7b 100644
--- a/ILSpy/TreeNodes/ResourceNodes/IconResourceEntryNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/IconResourceEntryNode.cs
@@ -58,10 +58,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
}
- public override object Icon
- {
- get { return Images.GetIcon(Images.ResourceImage); }
- }
+ public override object Icon => Images.ResourceImage;
public override bool View(DecompilerTextView textView)
{
diff --git a/ILSpy/TreeNodes/ResourceNodes/ImageListResourceEntryNode.cs b/ILSpy/TreeNodes/ResourceNodes/ImageListResourceEntryNode.cs
index 8781fc913..97710629f 100644
--- a/ILSpy/TreeNodes/ResourceNodes/ImageListResourceEntryNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/ImageListResourceEntryNode.cs
@@ -58,10 +58,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
get { return key; }
}
- public override object Icon
- {
- get { return Images.GetIcon(Images.ResourceImage); }
- }
+ public override object Icon => Images.ResourceImage;
protected override void LoadChildren()
{
diff --git a/ILSpy/TreeNodes/ResourceNodes/ImageResourceEntryNode.cs b/ILSpy/TreeNodes/ResourceNodes/ImageResourceEntryNode.cs
index c572e5782..2e7578e8f 100644
--- a/ILSpy/TreeNodes/ResourceNodes/ImageResourceEntryNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/ImageResourceEntryNode.cs
@@ -65,10 +65,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
}
- public override object Icon
- {
- get { return Images.GetIcon(Images.ResourceImage); }
- }
+ public override object Icon => Images.ResourceImage;
public override bool View(DecompilerTextView textView)
{
diff --git a/ILSpy/TreeNodes/ResourceNodes/ResourceEntryNode.cs b/ILSpy/TreeNodes/ResourceNodes/ResourceEntryNode.cs
index 9fd431838..5e0db07d1 100644
--- a/ILSpy/TreeNodes/ResourceNodes/ResourceEntryNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/ResourceEntryNode.cs
@@ -32,21 +32,11 @@ namespace ICSharpCode.ILSpy.TreeNodes
private readonly string key;
private readonly Stream data;
- public override object Text
- {
- get { return this.key; }
- }
+ public override object Text => this.key;
- public override object Icon
- {
- get { return Images.GetIcon(Images.Resource); }
- }
-
- protected Stream Data
- {
- get { return data; }
- }
+ public override object Icon => Images.Resource;
+ protected Stream Data => data;
public ResourceEntryNode(string key, Stream data)
{
diff --git a/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs b/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs
index 348d093bc..ff57aa944 100644
--- a/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs
@@ -36,48 +36,40 @@ namespace ICSharpCode.ILSpy.TreeNodes
///
public class ResourceTreeNode : ILSpyTreeNode
{
- readonly Resource r;
-
public ResourceTreeNode(Resource r)
{
if (r.IsNil)
throw new ArgumentNullException(nameof(r));
- this.r = r;
+ this.Resource = r;
}
-
- public Resource Resource {
- get { return r; }
- }
-
- public override object Text {
- get { return r.Name; }
- }
-
- public override object Icon {
- get { return Images.GetIcon(Images.Resource); }
- }
-
+
+ public Resource Resource { get; }
+
+ public override object Text => Resource.Name;
+
+ public override object Icon => Images.Resource;
+
public override FilterResult Filter(FilterSettings settings)
{
- if (settings.ShowApiLevel == ApiVisibility.PublicOnly && (r.Attributes & ManifestResourceAttributes.VisibilityMask) == ManifestResourceAttributes.Private)
+ if (settings.ShowApiLevel == ApiVisibility.PublicOnly && (Resource.Attributes & ManifestResourceAttributes.VisibilityMask) == ManifestResourceAttributes.Private)
return FilterResult.Hidden;
- if (settings.SearchTermMatches(r.Name))
+ if (settings.SearchTermMatches(Resource.Name))
return FilterResult.Match;
else
return FilterResult.Hidden;
}
-
+
public override void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{
- language.WriteCommentLine(output, string.Format("{0} ({1}, {2})", r.Name, r.ResourceType, r.Attributes));
-
+ language.WriteCommentLine(output, string.Format("{0} ({1}, {2})", Resource.Name, Resource.ResourceType, Resource.Attributes));
+
ISmartTextOutput smartOutput = output as ISmartTextOutput;
if (smartOutput != null) {
smartOutput.AddButton(Images.Save, Resources.Save, delegate { Save(MainWindow.Instance.TextView); });
output.WriteLine();
}
}
-
+
public override bool View(DecompilerTextView textView)
{
Stream s = Resource.TryOpenStream();
@@ -99,7 +91,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
return false;
}
-
+
public override bool Save(DecompilerTextView textView)
{
Stream s = Resource.TryOpenStream();
@@ -115,7 +107,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
return true;
}
-
+
public static ILSpyTreeNode Create(Resource resource)
{
ILSpyTreeNode result = null;
diff --git a/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs b/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs
index 1d28bbfcb..74ec9e049 100644
--- a/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs
@@ -60,9 +60,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
this.LazyLoading = true;
}
- public override object Icon {
- get { return Images.GetIcon(Images.ResourceResourcesFile); }
- }
+ public override object Icon => Images.ResourceResourcesFile;
protected override void LoadChildren()
{
diff --git a/ILSpy/TreeNodes/ResourceNodes/XmlResourceNode.cs b/ILSpy/TreeNodes/ResourceNodes/XmlResourceNode.cs
index c252f4eb3..7af53dd99 100644
--- a/ILSpy/TreeNodes/ResourceNodes/XmlResourceNode.cs
+++ b/ILSpy/TreeNodes/ResourceNodes/XmlResourceNode.cs
@@ -69,13 +69,13 @@ namespace ICSharpCode.ILSpy.Xaml
{
string text = (string)Text;
if (text.EndsWith(".xml", StringComparison.OrdinalIgnoreCase))
- return Images.GetIcon(Images.ResourceXml);
+ return Images.ResourceXml;
else if (text.EndsWith(".xsd", StringComparison.OrdinalIgnoreCase))
- return Images.GetIcon(Images.ResourceXsd);
+ return Images.ResourceXsd;
else if (text.EndsWith(".xslt", StringComparison.OrdinalIgnoreCase))
- return Images.GetIcon(Images.ResourceXslt);
+ return Images.ResourceXslt;
else
- return Images.GetIcon(Images.Resource);
+ return Images.Resource;
}
}
diff --git a/SharpTreeView/ICSharpCode.TreeView.csproj b/SharpTreeView/ICSharpCode.TreeView.csproj
index e04823753..77bf6c271 100644
--- a/SharpTreeView/ICSharpCode.TreeView.csproj
+++ b/SharpTreeView/ICSharpCode.TreeView.csproj
@@ -46,7 +46,6 @@
-
diff --git a/SharpTreeView/IconDataTemplateSelector.cs b/SharpTreeView/IconDataTemplateSelector.cs
deleted file mode 100644
index c8883468b..000000000
--- a/SharpTreeView/IconDataTemplateSelector.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-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.Media;
-
-namespace ICSharpCode.TreeView
-{
- class IconDataTemplateSelector : DataTemplateSelector
- {
- public DataTemplate ImageDataTemplate { get; set; }
-
- public DataTemplate VectorDataTemplate { get; set; }
-
- public override DataTemplate SelectTemplate(object item, DependencyObject container)
- {
- if (item is ImageSource)
- return ImageDataTemplate;
- if (item is DrawingGroup)
- return VectorDataTemplate;
-
- return base.SelectTemplate(item, container);
- }
- }
-}
diff --git a/SharpTreeView/Themes/Generic.xaml b/SharpTreeView/Themes/Generic.xaml
index b089d2c2c..46c49793d 100644
--- a/SharpTreeView/Themes/Generic.xaml
+++ b/SharpTreeView/Themes/Generic.xaml
@@ -257,24 +257,13 @@
Margin="0 0 5 1"
VerticalAlignment="Center"
Focusable="False">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-