Sco*_*ttG 67 wpf resources icons
我有一个嵌入了资源的.ico文件(构建操作设置为资源).我正在尝试创建一个NotifyIcon.我如何参考我的图标?
notifyIcon = new NotifyIcon();
notifyIcon.Icon = ?? // my icon file is called MyIcon.ico and is embedded
Run Code Online (Sandbox Code Playgroud)
use*_*125 102
您的图标文件应添加到您的某个项目程序集中,其Build Action应设置为Resource.添加对程序集的引用后,可以像这样创建NotifyIcon:
System.Windows.Forms.NotifyIcon icon = new System.Windows.Forms.NotifyIcon();
Stream iconStream = Application.GetResourceStream( new Uri( "pack://application:,,,/YourReferencedAssembly;component/YourPossibleSubFolder/YourResourceFile.ico" )).Stream;
icon.Icon = new System.Drawing.Icon( iconStream );
Run Code Online (Sandbox Code Playgroud)
Tho*_*att 20
常见的使用模式是使通知图标与主窗口的图标相同.该图标被定义为PNG文件.
为此,请将图像添加到项目的资源中,然后按如下方式使用:
var iconHandle = MyNamespace.Properties.Resources.MyImage.GetHicon();
this.notifyIcon.Icon = System.Drawing.Icon.FromHandle(iconHandle);
Run Code Online (Sandbox Code Playgroud)
在XAML窗口中:
<Window x:Class="MyNamespace.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:local="clr-namespace:Seahorse"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="600"
Icon="images\MyImage.png">
Run Code Online (Sandbox Code Playgroud)
Jay*_*kul 12
好吧,您不想使用resx样式资源:您只需将项目中的ico文件粘贴到文件夹中(例如"ArtWork"),然后在属性中将Build Action设置为"Resources"...
然后你可以使用PACK URI在XAML中引用它..."pack:// application:,,,/Artwork/Notify.ico"
请看这里:http://msdn.microsoft.com/en-us/library/aa970069.aspx和样本
如果你想要更多......类似WPF,你应该查看CodePlex上的WPF Contrib项目,它有一个NotifyIcon控件,你可以在XAML中创建并使用标准的WPF菜单(所以你可以坚持"任何东西" "在菜单中).
| 归档时间: |
|
| 查看次数: |
91439 次 |
| 最近记录: |