1

每个人。我有一个列表框。当我尝试显示 61 个项目时 - 它运行正常。但是当它是 62 或更多时 - 应用程序下降

System.Windows.Markup.XamlParseException occurred
  Message= [Line: 0 Position: 0]
  LineNumber=0
  LinePosition=0
  StackTrace:
       at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
       at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
       at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
       at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
       at MS.Internal.XcpImports.MeasureNative(IntPtr element, Single inWidth, Single inHeight)
       at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize)
       at System.Windows.UIElement.Measure(Size availableSize)
       at System.Windows.Controls.VirtualizingStackPanel.MeasureChild(UIElement child, Size layoutSlotSize)
       at System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint)
       at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)

它可能是什么 - 我不知道..它会在随机的时刻掉出来。我可以滚动 listBox 以结束,查看最后一个元素,当我向后滚动时 - 它会抛出错误。

4

1 回答 1

0

您的列表框中很可能有可变高度的项目。您可以尝试将 ListBox.ItemsPanel 更改为 StackPanel 而不是 VirtualizingStackPanel。这将允许可变高度的项目,但需要权衡,因为如果列表中有很多项目,那么您将增加启动时间和内存使用量。

于 2012-02-16T16:20:36.517 回答