通过代码将图像添加到 Wrappanel
Adding Image to Wrappanel by code
我的 WPF 中有一个 Wrappanel,例如:
<DockPanel x:Name="dockpnlCollection_Covers" HorizontalAlignment="Center" Grid.Row="0" Grid.Column="0" LastChildFill="False" Margin="0" >
<WrapPanel x:Name="wpnlCollection_Covers" Orientation="Vertical" MinWidth="520" VerticalAlignment="Top" HorizontalAlignment="Left" Height="Auto" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}"></WrapPanel>
</DockPanel>
我的 c#-代码如下所示:
for (int x = 0; x <= nmbr; x++)
{
cmddb.CommandText = "SELECT cover FROM movies Where nr = '" + x + "'";
dbreader.Read();
while (dbreader.Read())
{
coverpath = (string)dbreader["cover"];
System.Windows.Controls.Image newIMG = new System.Windows.Controls.Image();
newIMG.Margin = new System.Windows.Thickness { Left = 6, Top = 5, Right = 6, Bottom = 5 };
newIMG.Source = new BitmapImage(new Uri(coverpath));
wpnlCollection_Covers.Children.Add(newIMG);
}
}
dbreader.Close();
我在编译时没有遇到任何错误,但我的 wrapppanel 保持空白,我不明白为什么。
我在另一个页面上使用几乎相同的代码来生成复选框控件,它工作得很好。
谁能告诉我我做错了什么?
我的第一个猜测是你的初始 Read()
应该被删除
cmddb.CommandText = "SELECT cover FROM movies Where nr = '" + x + "'";
//dbreader.Read(); // is it wrong, maybe?
while (dbreader.Read())
如果第 nr 列是一个数字,这应该可以解决您的查询:
cmddb.CommandText = "SELECT cover FROM movies Where nr = " + x.ToString();
您将其视为字符串而不是数字(您在查询中使用了 ' 字符)。
我的 WPF 中有一个 Wrappanel,例如:
<DockPanel x:Name="dockpnlCollection_Covers" HorizontalAlignment="Center" Grid.Row="0" Grid.Column="0" LastChildFill="False" Margin="0" >
<WrapPanel x:Name="wpnlCollection_Covers" Orientation="Vertical" MinWidth="520" VerticalAlignment="Top" HorizontalAlignment="Left" Height="Auto" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}"></WrapPanel>
</DockPanel>
我的 c#-代码如下所示:
for (int x = 0; x <= nmbr; x++)
{
cmddb.CommandText = "SELECT cover FROM movies Where nr = '" + x + "'";
dbreader.Read();
while (dbreader.Read())
{
coverpath = (string)dbreader["cover"];
System.Windows.Controls.Image newIMG = new System.Windows.Controls.Image();
newIMG.Margin = new System.Windows.Thickness { Left = 6, Top = 5, Right = 6, Bottom = 5 };
newIMG.Source = new BitmapImage(new Uri(coverpath));
wpnlCollection_Covers.Children.Add(newIMG);
}
}
dbreader.Close();
我在编译时没有遇到任何错误,但我的 wrapppanel 保持空白,我不明白为什么。
我在另一个页面上使用几乎相同的代码来生成复选框控件,它工作得很好。
谁能告诉我我做错了什么?
我的第一个猜测是你的初始 Read()
应该被删除
cmddb.CommandText = "SELECT cover FROM movies Where nr = '" + x + "'";
//dbreader.Read(); // is it wrong, maybe?
while (dbreader.Read())
如果第 nr 列是一个数字,这应该可以解决您的查询:
cmddb.CommandText = "SELECT cover FROM movies Where nr = " + x.ToString();
您将其视为字符串而不是数字(您在查询中使用了 ' 字符)。