如何以简单的方式预加载图像?

时间:2014-03-26 15:02:21

标签: .net wpf winforms wpf-controls

在下面的代码中,当用户在ListBox中选择一个项目时,我使用了不同的图像ImageUrlHoverString

这是一个很大的图像,我在加载图像时看到了一些差距。 你知道一个简单的方法来预加载这个图像,所以这个故障不再发生了吗?

           <Image x:Name="FloorImage"
                   Grid.Row="1"
                   Margin="0,0,0,0"
                   Height="70">
                <Image.Style>
                    <Style TargetType="{x:Type Image}">
                        <Setter Property="Source" Value="{Binding ImageUrlString}" />
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=IsSelected}" Value="True">
                                <Setter Property="Source" Value="{Binding ImageUrlHoverString}"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>

1 个答案:

答案 0 :(得分:0)

我发现了一种易于实施的解决方案。基本上我创建了另一个隐藏可见性的图像,加载了ImageUrlHoverString

的网址

                                                                                                                                                                                                                                                                                                          

            <Image x:Name="FloorImagePreload"
                   Width="200"
                   Height="80"
                   Visibility="Hidden"
                   Grid.Row="1"
                   Margin="0,0,0,0">
                <Image.Style>
                    <Style TargetType="{x:Type Image}">
                        <Setter Property="Source" Value="{Binding ImageUrlHoverString}" />
                    </Style>
                </Image.Style>
            </Image>