0

我正在尝试在我的应用程序中使用 FluidKits ElementFlow-control,但在 ElementFlow 的 MeasureOverride 方法中出现异常。

元素“FluidKit.Controls.ElementFlow”的布局测量覆盖不应返回 PositiveInfinity 作为其 DesiredSize,即使 Infinity 作为可用大小传入也是如此。

在 FluidKit 之后的示例应用程序中,一切正常。当调用 MeasureOverride 时,availableSize-struct 会使用控件的边界进行初始化,但在我的应用程序中,它带有宽度和高度的 INF。

我试图找出示例和我的应用程序之间的不同之处,但两者都是一个带有网格的窗口,该窗口带有一个使用 ElementFlow for ItemsPanel 的列表框。

我发现其他人在同样的异常中苦苦挣扎,但除了给列表框一个明确的大小之外,我还没有找到任何解决方案。但我不想给它一个大小,我希望网格来管理它的布局。

有什么建议么?

4

3 回答 3

0

您有机会发布一些示例代码吗?

我有一个类似的问题,原来我必须将网格作为根元素(以前网格在画布中,我最终将它移动到用户控件并且一切正常)。

于 2009-04-06T06:57:59.390 回答
0

请参阅 FluidKit CodePlex 网站上的讨论。简单的答案是打开 ElementFlow 代码并将 MeasureOverride 中的返回值从 availableSize 更改为 _viewport.DesiredSize。

于 2009-05-07T20:44:10.867 回答
0

您根本无法在可变大小的网格或面板中使用 ElementFlow 控件。如您得到的异常所示,它不是为了处理这种情况而编写的。

你没有显示你的代码。我只能假设您的控件嵌套和定义方式允许其中一个无限增长。例如,将 ScrollViewer 作为根元素粘贴在页面中,并启用特定方向的滚动。然后你有一个控件,它允许自己在那个方向变大,并且在请求他们的测量(在那个特定的方向)时,它会将无穷大传递给子控件。如果 ElementFlow 控件是 ScrollViewer 的子控件,您将得到这个确切的异常。

如果您显示页面的 xaml,应该很容易看到哪个父控件允许其内容无限增长。

于 2015-08-13T18:40:21.393 回答