C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: WPFのListBoxに画像を動的に追加する方法


(過去ログ 118 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■69415 / inTopicNo.1)  WPFのListBoxに画像を動的に追加する方法
  
□投稿者/ meme (7回)-(2013/12/25(Wed) 11:12:04)

分類:[.NET 全般] 

WPFのListBoxに画像を動的に追加する方法を探しています。

文字であれば追加することはできたのですが、画像を追加する方法を見つけることができませんでした。


http://codezine.jp/article/detail/5557?p=2
上記サイトの方法でやろうと思えばできたのですが、画像をスタックパネルに入れてそれを表示するという感じで
画像そのものをシンプルにListBoxに渡すことはしていません。


なるべくシンプルなコードにしたいためXAML上で画像のソースを渡すだけでListBoxに追加するような
コードを探しています。
下記※にサンプルソースを示しますが、できればこのように文字を指定するところをファイルのパスに
するなどで対応できるようなコードはありませんでしょうか。


お分かりの方いらっしゃいましたらよろしくお願いいたします。



※サンプルソース

Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
  Dim t As New ListBoxItem

  t.Content = "追加された項目"
  ListBox1.Items.Add(t)
End Sub


引用返信 編集キー/
■69416 / inTopicNo.2)  Re[1]: WPFのListBoxに画像を動的に追加する方法
□投稿者/ Hongliang (146回)-(2013/12/25(Wed) 11:43:35)
バインディング/DataTemplateを使わないのなら、ListBoxItem::ContentにImageオブジェクトを設定すればいいですけど。

バインディング/DataTemplateを使うのなら、
<ListBox ItemsSource="{Binding}">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Image Source="{Binding}"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
こんな感じにして、ListBox::DataContextにObservableCollection<string>を設定するとか。
画像を追加するにはObservableCollection<string>にパスを追加するだけ。

引用返信 編集キー/
■69418 / inTopicNo.3)  Re[2]: WPFのListBoxに画像を動的に追加する方法
□投稿者/ meme (8回)-(2013/12/25(Wed) 14:23:45)
Hongliangさん、ありがとうございます。


私が探しているものと少し違っていました。説明が不足しており申し訳ありませんでした。

ListBoxには、文字と画像を混在して入れようと考えており、例えばボタンAとボタンBを用意して
ボタンAをクリックなら文字列を、ボタンBをクリックなら画像を動的に入れようと考えております。

そのため、Bindingで内容を指定するというよりはソース上でListBoxに画像をItems.Addできる書き方を探しております。


Dim t As New ListBoxItem
t.Image = "画像のフルパス"

こんな感じで画像をtに持たせることができたらなぁ・・・と思っています。
引用返信 編集キー/
■69419 / inTopicNo.4)  Re[3]: WPFのListBoxに画像を動的に追加する方法
□投稿者/ Hongliang (147回)-(2013/12/25(Wed) 15:08:09)
> Dim t As New ListBoxItem
> t.Image = "画像のフルパス"
>
> こんな感じで画像をtに持たせることができたらなぁ・・・と思っています。

その方法は先の投稿の冒頭で述べましたが、何か不明点がありましたか?

バインディングならDataTemplateSelectorかな。
引用返信 編集キー/
■69420 / inTopicNo.5)  Re[4]: WPFのListBoxに画像を動的に追加する方法
□投稿者/ meme (9回)-(2013/12/25(Wed) 16:24:23)
Hongliangさん。

度々返信していただきありがとうございます。
冒頭の文章を読み落としておりました。

Imageオブジェクトを追加すればできるかとは思うのですが、そのコードの仕方がわかりませんでした。

宣言の仕方に何か誤りがあるとは思うのですが、具体的にそれが何かまで特定することができませんでした。
お手数ですが、下記ソースで何が誤りかわかるでしょうか?


Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)

  Dim bi As New BitmapImage
  Dim jpnImage As New Image

  bi.BeginInit()
  bi.UriSource = New Uri("C:\Sample.bmp", UriKind.Absolute)
  bi.EndInit()

  jpnImage.Source = bi
  jpnImage.Height = 20
  jpnImage.Width = 32

  ListBox1.Items.Add(jpnImage)

End Sub



http://codezine.jp/article/detail/5557?p=2
上記サイトのサンプルとほぼ同じないようなのですが、StackPanelは使わずにImageを
直接リストボックスに入れようとしたのですが、ここで落ちてしまいました。


誤りについてご指摘いただけないでしょうか。


よろしくお願いいたします。

引用返信 編集キー/
■69421 / inTopicNo.6)  Re[5]: WPFのListBoxに画像を動的に追加する方法
□投稿者/ Hongliang (148回)-(2013/12/25(Wed) 16:34:10)
「落ちた」だけでは判断できません。何か例外が出ましたか? そうであればどこで、どんな内容の?
一応、ソース的には問題なさそうですが。
引用返信 編集キー/
■69422 / inTopicNo.7)  Re[6]: WPFのListBoxに画像を動的に追加する方法
□投稿者/ meme (10回)-(2013/12/25(Wed) 18:26:23)
Honglingさん

返信いただきありがとうございます。


再度試したところ、正しく動作しました。
どうやらファイルのパスなどが正しく設定されていなかったようです。


ご迷惑おかけし申し訳ありませんでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -