2011-07-02 56 views

回答

53

如果您加载使用Visual Studio UI的资源,那么你应该能够做到这一点:

picturebox.Image = project.Properties.Resources.imgfromresource 
+6

+1 - 我不得不打电话'pictureBox.Load ();'显示图像,只从资源分配它不起作用 – Habib

0

您必须在资源文件中指定资源文件的完整路径作为'image'的名称,请参阅下面的示例。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    PictureBox1.Image = My.Resources.Chrysanthemum 
End Sub 

在MyResources指定资源名称后,分配给Image属性的路径。

但是在做任何事情之前,你必须从应用程序的资源部分导入图像文件,否则它可以创建自己的。

再见

2

尝试以下操作:

myPictureBox.Image = global::mynamespace.Properties.Resources.photo1; 

,并与您的项目命名空间

8

肯有合适的解决方案替代的命名空间,但你不希望添加的picturebox.Image。 Load()成员方法。

如果使用Load执行此操作,并且未设置ImageLocation,则它将失败,并显示“必须设置图像位置”异常。如果你使用了picturebox.Refresh()成员方法,它没有任何异常。

下面

完成代码:

public void showAnimatedPictureBox(PictureBox thePicture) 
{ 
      thePicture.Image = Properties.Resources.hamster; 
      thePicture.Refresh(); 
      thePicture.Visible = true; 
} 

它援引为: showAnimatedPictureBox(的MyPictureBox);

我的XAML的样子:

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration" 
     xmlns:winForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="myApp.MainWindow" 
     Title="myApp" Height="679.079" Width="986"> 

     <StackPanel Width="136" Height="Auto" Background="WhiteSmoke" x:Name="statusPanel"> 
      <wfi:WindowsFormsHost> 
       <winForms:PictureBox x:Name="myPictureBox"> 
       </winForms:PictureBox> 
      </wfi:WindowsFormsHost> 
      <Label x:Name="myLabel" Content="myLabel" Margin="10,3,10,5" FontSize="20" FontWeight="Bold" Visibility="Hidden"/> 
     </StackPanel> 
</Window> 

我意识到这是一个老帖子,但图像直接从资源装载是在微软的网站非常清楚,这是我来了(部分)解决方案至。希望它能帮助别人!

+1

当尽可能使用thePicture.Invalidate()而不是刷新()。这允许应用程序在它认为是绘图的时候绘制它。 Refresh()强制它立即绘制它,这通常不是性能最好的... – huha

4

好......所以首先你需要在你的项目中导入图像

1)选择窗体设计

2)打开PictureBox的任务(这是pinted到右的小箭头PictureBox的边框上的图片框)

3)点击“选择图片...“

4)选择第二个选项‘项目资源文件:’(此选项将创建一个文件夹,名为‘资源’

5,你可以用Properties.Resources ACCES))点击导入,并选择你的形象从您的计算机

6)(即现在的形象与名称相同的图像的副本将在步骤4中创建资源文件夹发送)点击OK

现在的形象在你的项目,你可以在属性命令中使用它。当你想从picturebox更改图片时,请输入以下代码:

pictureBox1.Image = Properties.Resources.myimage; 

注:MYIMAGE表示图像的名称...输入资源后点后,在你的选择将是你导入的图像文件