这是我第一次在 WPF 中使用 UserControl。以下是我的 Usercontrol Xaml 和后台 VB 代码:
<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>
代码文件:
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
以下是获取 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
问题是图像没有显示在图像列表框中,只显示了一个黑色项目。你能告诉我我在这里做错了什么吗?