【问题标题】:WPF ListBox Show WAIT Cursor?WPF ListBox 显示等待光标?
【发布时间】:2011-01-08 07:11:21
【问题描述】:

我有一个 WPF 列表框,它显示从本地文件夹加载的图像, 通常在 1-300 之间)。 我在 imageTemplate 中使用转换器来确保并显示图像的缩略图, 而不是全尺寸的图像。即使这样做,它仍然 最初加载可能需要几秒钟。 我的问题是,当加载 ListBoxItems 时,我怎么知道在我的 ListBox 中 开始/结束,以便我可以将鼠标光标设置为等待状态?我在看 用于通知该用户正在发生某事的方法..

这是我的 ListBox 在 XAML 中的样子:

<ListBox SelectionMode="Extended"
         ItemsSource="{Binding Path=ImageFiles}"
         ItemTemplate="{StaticResource imageTemplate}"
         ScrollViewer.CanContentScroll="True"
         ScrollViewer.HorizontalScrollBarVisibility="Disabled"
         ScrollViewer.IsDeferredScrollingEnabled="False"
         VirtualizingStackPanel.VirtualizationMode="Recycling"
         x:Name="images">
        <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                 <WrapPanel />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
   </ListBox>

谢谢!

【问题讨论】:

    标签: wpf listbox mouse cursor


    【解决方案1】:

    我回答了一个类似的问题,here。

    如果您不想弹出窗口,您也可以通过将半透明矩形(或其他填充控件)及其前面的消息/动画附加到列表框或其像链接答案中的弹出窗口一样异步关闭的父控件。在 BusyIndi​​cator 可用之前,我为 Silverlight 做过类似的事情,而且效果很好。我将它设置为用户控件,并为它应该覆盖的控件设置一个属性,因此它很容易被重用。

    【讨论】:

    • 嗨,迈克,我查看了您对类似问题的回答。我的问题是,由于 ListBox 使用数据绑定来获取项目,我不确定如何判断它何时加载。我并不太关心在加载时要显示什么,而是能够确定何时加载开始和结束。有什么想法吗?谢谢,Rob
    • 抱歉,我现在知道我错过了您的具体问题的地方。你能确定到底是什么在花时间吗?假设它不是绑定本身,它可能是从磁盘读取图像。或者可能是缩略图转换过程(如果您在加载时这样做)。无论哪种方式,您都可以在进行绑定之前构建图像集合,然后在完成后抛出一个事件。这应该是可行的。清楚吗?
    • 我认为您是对的,大部分时间都花在从磁盘读取图像上,而花一点时间进行转换(一切都是通过直接绑定到 XML 文件来完成的)。这可能是我所做的,在进行绑定之前构建集合......我会看看我是否可以解决这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    相关资源
    最近更新 更多