web-dev-qa-db-ja.com

PictureBoxの画像をリソースの画像に変更しますか?

PictureBoxの画像をリソースの画像に設定するにはどうすればよいですか?

(成功せずにこれを試しました:pictuerbox.Image = "img_location";

24
MasterMastic

Visual Studio UIを使用してリソースをロードした場合、これを実行できるはずです。

picturebox.Image = project.Properties.Resources.imgfromresource
63

Kenには適切なソリューションがありますが、picturebox.Image.Load()メンバーメソッドを追加する必要はありません。

Loadで実行し、ImageLocationが設定されていない場合、「Image Location must set set」例外で失敗します。 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>

これは古い投稿であることがわかりましたが、リソースから画像を直接読み込むことはMicrosoftのサイトでは非常に不明確であり、これが私が訪れた(部分的な)ソリューションでした。それが誰かを助けることを願っています!

11
Phorkus Maximus

わかりました...最初に、プロジェクトに画像をインポートする必要があります

1)フォームデザインでピクチャボックスを選択します

2)PictureBoxタスクを開きます(PictureboxのEdgeで右に固定されている小さな矢印です)

3)「画像を選択...」をクリックします

4)2番目のオプション「Project resource file:」を選択します(このオプションは、Properties.Resourcesにアクセスできる「Resources」というフォルダーを作成します)

5)[インポート]をクリックして、コンピューターから画像を選択します(画像と同じ名前の画像のコピーが、手順4で作成したリソースフォルダーに送信されます)。

6)[OK]をクリックします

これで画像がプロジェクト内にあり、プロパティコマンドで使用できます。ピクチャボックスから画像を変更する場合は、次のコードを入力してください。

pictureBox1.Image = Properties.Resources.myimage;

注:myimageは、リソースの後にドットを入力した後のイメージの名前を表します。オプションでは、インポートされたイメージファイルになります

6
Alin Leon

ResourceManagerを使用して、イメージをロードできます。

次のリンクを参照してください: http://www.Java2s.com/Code/CSharp/Development-Class/Saveandloadimagefromresourcefile.htm

3
The Evil Greebo

以下を試してください:

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

名前空間をプロジェクトの名前空間に置き換えます

2

リソースファイルの完全パスを、アプリケーションのリソース内の「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プロパティに割り当てられたパスで、リソースの名前を指定します。

ただし、アプリケーションのリソースセクションに画像ファイルからインポートする必要があるものを実行する前に、独自に作成することもできます。

バイバイ

0