我试图在我的应用程序中使用FluidKits ElementFlow控件,但是在MeasureOverride方法ElementFlow中得到一个异常。
布局度量覆盖元素'FluidKit.Controls.ElementFlow‘不应将PositiveInfinity作为其DesiredSize返回,即使Infinity是以可用大小传入的。
在遵循FluidKit的示例应用程序中,一切正常。当调用MeasureOverride时,可利用控件的边界初始化可利用的大小-结构,但在我的应用程序中,它附带了宽度和高度的INF。
我试图找出示例和我的应用程序之间的不同之处,但这两个窗口都是一个带有列表框的窗口,该窗口使用ElementFlow进行ItemsPanel。
我发现其他人也在与同样的例外做斗争,但我没有找到任何解决办法,除了给列表框一个明确的大小之外。但我不想给它一个大小,我希望网格管理它的布局。
有什么建议吗?
发布于 2009-04-06 06:57:59
你有没有可能发布一些示例代码?
我也遇到了类似的问题,结果我不得不将网格作为根元素(以前网格在画布中,最后将它移动到用户控件中,一切都很好)。
发布于 2009-05-07 20:44:10
请参阅FluidKit CodePlex站点上的讨论。简单的答案是打开ElementFlow代码并将MeasureOverride中的返回值从availableSize更改为_viewport.DesiredSize。
发布于 2015-08-13 18:40:21
您不能在可变大小的网格或面板中使用ElementFlow控件。它不是为了处理这种情况而编写的,正如您得到的异常所指示的那样。
你没有显示你的代码。我只能假设您将控件嵌套并定义为允许其中一个控件无限期增长的方式。例如,将页面中的ScrollViewer作为根元素,并启用特定方向的滚动。然后,您有一个控件,它允许自己在该方向上变得更大,并且在要求其测量(在特定方向)时,它会将无穷大传递给子控件。如果ElementFlow控件是ScrollViewer的子控件,则会得到此异常。
如果显示页面的xaml,应该很容易看到哪个父控件允许它的内容无限期地增长。
https://stackoverflow.com/questions/679389
复制相似问题