|
1 | 1 | using System.Windows.Controls; |
2 | 2 | using WPFMenuItem = System.Windows.Controls.MenuItem; |
3 | 3 | using Hardcodet.Wpf.TaskbarNotification; |
4 | | -using System.Windows.Media; |
5 | | -using System.Windows.Media.Imaging; |
6 | 4 | using System; |
7 | 5 | using System.Management.Automation; |
8 | 6 | using System.IO; |
9 | 7 | using System.Drawing; |
| 8 | +using System.Windows; |
10 | 9 |
|
11 | 10 | namespace pscommander |
12 | 11 | { |
@@ -38,7 +37,7 @@ public void UpdateToolbar(ToolbarIcon icon) |
38 | 37 |
|
39 | 38 | if (string.IsNullOrWhiteSpace(icon.Icon)) |
40 | 39 | { |
41 | | - _taskbarIcon.IconSource = new BitmapImage(new Uri("pack://application:,,,/pscommander;component/Resources/icon.ico")); |
| 40 | + _taskbarIcon.Icon = LoadDefaultIcon(); |
42 | 41 | } |
43 | 42 | else |
44 | 43 | { |
@@ -119,6 +118,17 @@ private static string EscapePowerShellSingleQuotedString(string value) |
119 | 118 | return value.Replace("'", "''"); |
120 | 119 | } |
121 | 120 |
|
| 121 | + private static Icon LoadDefaultIcon() |
| 122 | + { |
| 123 | + var resourceInfo = Application.GetResourceStream(new Uri("pack://application:,,,/Resources/icon.ico")); |
| 124 | + if (resourceInfo == null) |
| 125 | + { |
| 126 | + throw new FileNotFoundException("The default tray icon resource could not be found.", "Resources/icon.ico"); |
| 127 | + } |
| 128 | + using var icon = new Icon(resourceInfo.Stream); |
| 129 | + return (Icon)icon.Clone(); |
| 130 | + } |
| 131 | + |
122 | 132 | private void AddMenuItem(ItemCollection items, MenuItem item) |
123 | 133 | { |
124 | 134 | var wpfMenuItem = new WPFMenuItem(); |
|
0 commit comments