Я использую всплывающее окно в шаблоне элемента управления MenuItem.
Однако я заранее не знаю, сколько пунктов будет в пункте меню. В результате всплывающее окно может не помещаться на экране, а некоторые элементы могут быть недоступны.
Мое решение состоит в том, чтобы установить MaxSize, скажем, 500, и обернуть ItemsPresenter в ScrollViewer.
Однако это не учитывает размер экрана.
Есть ли способ указать, что всплывающее окно должно быть настолько большим, насколько это необходимо, не выходя за границы экрана?
По-видимому, WPF достаточно умен, чтобы установить направление всплывающего окна (вверх / вниз, вправо / влево) так, чтобы оно имело тенденцию к центру. Например, если всплывающее окно находится внизу экрана, оно будет всплывать над позицией всплывающего окна, а не под ним. Но я не вижу ничего относительно максимального размера.