我遇到了组合框弹出窗口的问题(不确定它是否是组合框的问题)。首先,当我点击它时,下拉弹出窗口打开正确 - 向上(其中有大约50个项目,组合框位于页面底部,如果它向下,则只有5个项目可见)。但是,如果我选择任何项目,然后再次打开它 - 它将向下打开并将项目放在滚动中。那么如何解决这个问题并强制弹出窗口向所需方向打开?
答案 0 :(得分:0)
您是否在某个时候设置了“MaxDropDownHeight”?默认情况下它是无穷大但可能设置为硬#在组合框中大于#可能有帮助。
此外,我只是在SL4 / Firefox中对此进行了测试,每次弹出组合框(带或不带选定项目)。您使用的是什么版本的SL?
答案 1 :(得分:0)
嗯,我做了什么 - 我订阅了Border元素的SizeChanged事件,该事件是Popup.Child画布的子项。在该方法中,我计算组合框下方和上方的空间,然后使用Canvas.SetTop方法将Top offset设置为该边界及其MaxHeight。也许我稍后会发布一些代码。
答案 2 :(得分:0)
我遇到了同样的问题(实际上是使用Silverlight 5,但仍然有相同的行为)。我用MaxDropDownHeight尝试了各种各样的东西但是没有解决问题。
@Walker你在答案中提到的方法听起来很有希望,但我无法从你的描述中看出你是如何实现的。
无论如何,我发现了一个不太可能的解决方案。我发现如果我使用 ComboBoxItems 而不是自定义对象的集合填充我的ComboBox,则不会发生下拉/选择/方向问题。我已经发布了一个更详细的答案here。