【问题标题】:"cannot create instance defined in assembly" when creating a new System.Drawing.Icon创建新 System.Drawing.Icon 时“无法创建在程序集中定义的实例”
【发布时间】:2011-01-12 13:30:27
【问题描述】:

我正在尝试使用以下代码行在 WPF 中创建系统托盘图标:

System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon("main.ico");

XAML:

> <Window x:Class="WpfExample.Window1"
>     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
>     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>     Title="Window1" Height="300" Width="300">
>     <Grid>
>         <Button Height="23" Margin="103,0,100,100" Name="button1"
> VerticalAlignment="Bottom">Submit</Button>
>         <TextBox Height="23" Margin="77,75,81,0" Name="textBox1"
> VerticalAlignment="Top" />
>     </Grid> </Window>

我在 Google 上搜索了解决方案,但我正在尝试学习 WPF,这是我在创建系统托盘图标时遇到的问题。我收到的消息如下所示:

无法创建“Window1”的实例 在程序集'WpfExample中定义, 版本=1.0.0.0,文化=中性, PublicKeyToken=null'。异常有 被目标抛出 调用。标记文件中的错误 'Window1.xaml' 第 1 行位置 9。

谁能指出我正确的方向?

【问题讨论】:

  • 它在抱怨 .xaml 文件,但您发布了 .cs 文件。
  • 添加了 XAML 现在之前错过了 - 谢谢 :)

标签: .net wpf icons trayicon


【解决方案1】:

我创建了一个显示托盘图标的小型示例应用程序。您可以尝试运行它并研究代码是如何工作的。我把它上传到了 SkyDrive:

http://cid-1fe4c9928da08eaa.office.live.com/self.aspx/P%c3%bablico/Tray-WpfApplication1.zip

【讨论】:

    【解决方案2】:

    .ico 必须采用标准格式、大小和颜色。 我遇到了这个问题。

    尝试获取并使用此图标文件并判断它是否有效:

    http://www.iconarchive.com/download/visualpharm/must-have/Check.ico

    这里还有更多图标:

    http://www.iconarchive.com/category/system/must-have-icons-by-visualpharm.html

    【讨论】:

    • 好的,当您可以访问此 .ico 文件并将其保存在您的计算机上时,您就可以尝试解决方案了。
    • 已经拿到文件明天试试,谢谢帮助,希望能解决问题:)
    • 刚刚尝试过,仍然存在同样的问题。我尝试将图标的大小也设置为 ni.Icon = new System.Drawing.Icon("main.ico", new System.Drawing.Size() { Height=25,Width=25 });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多