This is my first time using the UserControl in WPF. Following is my Usercontrol Xaml and background VB Code:
<UserControl x:Class="AddNewGenre"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" d:DesignHeight="194" d:DesignWidth="405">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="130" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="72*" />
<ColumnDefinition Width="333*" />
</Grid.ColumnDefinitions>
<ListBox Name="GenreListBox" ItemsSource="{Binding}"
Grid.Row="1" Grid.Column="1">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Value}" Width="128" Height="128" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</UserControl>
Code file:
Public Class AddNewGenre
Dim Result As HODLib.Classes.GenreClass
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.DataContext = Result
End Sub
Private Sub UserControl_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
GenreListBox.ItemsSource = GlobalValues.ImageDictionary
End Sub
End Class
Following is the code that gets the GlobalValues.ImageDictionary:
Namespace GlobalValues
Module CurrentVariables
Public ImageDictionary As Concurrent.ConcurrentDictionary(Of String, BitmapImage)
Public Sub Initialize()
ImageDictionary = New Concurrent.ConcurrentDictionary(Of String, BitmapImage)
'try get resources
GetAllBitmaps()
End Sub
Public Sub GetAllBitmaps()
Try
ImageDictionary.Clear()
With ImageDictionary
.TryAdd("Box", New BitmapImage(New Uri("Resources\Box.png", UriKind.Relative)))
.TryAdd("Tri", New BitmapImage(New Uri("Resources\Tri.png", UriKind.Relative)))
End With
Catch ex As Exception
End Try
End Sub
End Module
End Namespace
The issue is that the images are not getting displayed in the imagelistbox, only a black item is getting displayed. Could you please tell me what is the wrong thing I did here.
Finally found a answer from this post: Accessing Build Action Resource type files In my case I made value to string of format “/HOD;component/Resources/Box.png” rather than the BitmapImage