2011-07-02 36 views

Trả lời

53

Nếu bạn nạp tài nguyên sử dụng giao diện người dùng visual studio, sau đó bạn sẽ có thể làm được điều này :

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

1 - Tôi đã phải gọi 'pictureBox.Load(); 'để hiển thị hình ảnh, chỉ gán nó từ các tài nguyên không hoạt động – Habib

0

Bạn phải chỉ định đường dẫn đầy đủ của tệp tài nguyên làm tên của 'hình ảnh trong tài nguyên ứng dụng của bạn, xem ví dụ bên dưới.

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

Trong đường dẫn được chỉ định cho thuộc tính Hình ảnh sau khi MyResources chỉ định tên tài nguyên.

Nhưng trước khi bạn làm bất cứ điều gì bạn phải nhập vào phần tài nguyên của ứng dụng của bạn từ một tệp hình ảnh tồn tại hoặc nó có thể tạo của riêng bạn.

Bye

2

hãy thử như sau:

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

và thay thế namespace với namespace dự án của bạn

8

Ken có giải pháp đúng, nhưng bạn không muốn thêm picturebox.Image. Load() phương thức thành viên.

Nếu bạn làm điều đó với Tải và ImageLocation không được đặt, nó sẽ không thành công với ngoại lệ "Vị trí hình ảnh phải được đặt". Nếu bạn sử dụng phương thức thành viên picturebox.Refresh(), nó hoạt động mà không có ngoại lệ.

Completed mã bên dưới:

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

Nó được gọi như: showAnimatedPictureBox (myPictureBox);

My XAML trông giống như:

<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> 

Tôi nhận ra đây là một bài cũ, nhưng tải hình ảnh trực tiếp từ một nguồn lực là vô cùng rõ ràng trên trang web của Microsoft, và đây là (một phần) giải pháp tôi đến đến. Hy vọng nó sẽ giúp một ai đó!

+1

Khi nào có thể sử dụng thePicture.Invalidate() thay vì Refresh(). Điều này cho phép ứng dụng vẽ nó khi nó nghĩ rằng đó là thời gian để vẽ. Làm mới() buộc nó vẽ nó ngay lập tức mà thường không phải là tốt nhất cho hiệu suất ... – huha

4

Ok ... do đó, đầu tiên bạn cần phải nhập khẩu trong dự án của bạn hình ảnh

1) Chọn picturebox trong Form Design

2) Nhiệm vụ mở PictureBox (đó là mũi tên nhỏ pinted sang phải trên cạnh trên picturebox)

3) Nhấp vào "Chọn hình ảnh ..."

4) Chọn tùy chọn thứ hai 'tập tin tài nguyên dự án:' (tùy chọn này sẽ tạo ra một thư mục có tên 'Tài nguyên' mà bạn có thể acces với Properties.Resources)

5) Click vào nhập khẩu và chọn hình ảnh của bạn từ máy tính của bạn (bây giờ là một bản sao của hình ảnh với tên giống như hình ảnh sẽ được gửi trong thư mục Resources tạo ở bước 4)

6) Nhấp vào ok

Bây giờ hình ảnh là trong dự án của bạn và bạn có thể sử dụng nó với lệnh Properties.Chỉ cần nhập mã này khi bạn muốn thay đổi hình ảnh từ picturebox:

pictureBox1.Image = Properties.Resources.myimage; 

Lưu ý: myimage đại diện cho tên của ảnh ... sau khi nhập các dấu chấm sau Resources, trong lựa chọn của bạn nó sẽ là file ảnh đã nhập của mình

Các vấn đề liên quan