我想在一个wrappanel中加载多个图像,为每个图像显示缩略图,并使用此代码显示一些图像细节
<Border BorderThickness="1" BorderBrush="#FFD0D1D7" Padding="5" Margin="10,10,0,0">
<StackPanel Orientation="Horizontal">
<!--image and dimensions-->
<Grid Width="88" Height="55">
<Image Source="C:\img1.jpg" Width="88" Height="55"/>
<TextBlock Background="#B2000000" Foreground="White" Height="16" TextAlignment="Center" VerticalAlignment="Bottom">1280x1024</TextBlock>
</Grid>
<!--name, type and size-->
<StackPanel Orientation="Vertical" Margin="5,0,0,0" VerticalAlignment="Center">
<TextBlock Margin="1" Foreground="#FF787878">img13.jpg</TextBlock>
<TextBlock Margin="1" Foreground="#FF787878">Type: JPEG</TextBlock>
<TextBlock Margin="1" Foreground="#FF787878">Size: 321 KB</TextBlock>
</StackPanel>
</StackPanel>
</Border>
但是图像是在运行时加载的,我需要一些方法来创建上面代码的实例来显示图像,尺寸,名称,类型和大小
我尝试了这个解决方案https://stackoverflow.com/a/4991028/962284
StringBuilder sb = new StringBuilder();
// use xaml to declare a button as string containing xaml
sb.Append(@"<Border BorderThickness='1' BorderBrush='#FFD0D1D7' Padding='5' Margin='10,10,0,0'>
<StackPanel Orientation='Horizontal'>
<!--image and dimensions-->
<Grid Width='88' Height='55'>
<Image Source='C:\img1.jpg' Width='88' Height='55'/>
<TextBlock Background='#B2000000' Foreground='White' Height='16' TextAlignment='Center' VerticalAlignment='Bottom'>1280x1024</TextBlock>
</Grid>
<!--name, type and size-->
<StackPanel Orientation='Vertical' Margin='5,0,0,0' VerticalAlignment='Center'>
<TextBlock Margin='1' Foreground='#FF787878'>img13.jpg</TextBlock>
<TextBlock Margin='1' Foreground='#FF787878'>Type: JPEG</TextBlock>
<TextBlock Margin='1' Foreground='#FF787878'>Size: 321 KB</TextBlock>
</StackPanel>
</StackPanel>
</Border>");
FrameworkElement thumb = (FrameworkElement)System.Windows.Markup.XamlReader.Parse(sb.ToString());
ThumbnailContainer.Children.Add(thumb);
但是我收到以下错误
我也尝试使用样式,但样式不支持多个参数(指定文本块:尺寸,大小,名称,类型和大小)只是“TemplateBinding标记”为1值
如何创建第一个代码的实例以在运行时显示多个图像?
答案 0 :(得分:1)
哇。这看起来很难做事。是时候接受WPF和XAML。
我有一篇关于这个完全相同的事情的帖子还没有完成。我花时间为你完成它。我甚至在你的例子中使用了你的XAML片段(以及它的修改版本),仅供你使用。
http://www.wpfsharp.com/2012/10/23/displaying-images-from-a-folder-with-details-in-wpf/
Clemens在使用ItemsControl的评论中是正确的。
答案 1 :(得分:1)
是的,您的方法是错误的,您应该以其他方式执行此操作,但要让代码段工作,请尝试将xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"
添加到您正在构建的字符串中的Border
元素中。我怀疑那是错误。