代码之家  ›  专栏  ›  技术社区  ›  Geeth

WPF-列表框内的图像控件

  •  1
  • Geeth  · 技术社区  · 14 年前

    我正在列表框中显示图像。使用对象通过列表框的DataContext绑定图像控件的源。

    问题:如果URL没有图像,我不想显示任何图像(图像)。是否可以在XAML代码中执行。

    代码:

     <ListBox ClipToBounds="False" x:Name="lbBestSellerImage" Width="Auto" 
      ItemsSource="{Binding}" ItemsPanel="{DynamicResource iptListBox}" 
     ItemContainerStyle="{DynamicResource ListBoxItemStyle}" />
    
     <Style x:Key="ListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="Padding" Value="2,0,0,0"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
                        <Grid Width="150">
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                            <Image HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="0" x:Name="img" Source="{Binding ImageUrl}" Height="74" Stretch="Fill" Width="75"/>                                    
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   rudigrobler    14 年前

    public class ImageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            string uri = (string)value;
            if (string.IsNullOrEmpty(uri))
                return new BitmapImage(new Uri(uriToMyDefaultImage));
    
            return new BitmapImage(new Uri(uri));
    
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }