Всплывающее окно WPF на ListBoxItem - PullRequest
0 голосов
/ 05 февраля 2011

У меня есть всплывающее окно MiniToolbar, которое отображается при наведении мыши на элемент ListBoxItem, оно должно отображаться только под элементом. (триггер MouseOver также устанавливает свойство IsSelected для элементов)

Я попробовал два варианта:

  1. определить всплывающее окно для элементов DataTemplate
  2. определить всплывающее окно на ControlTemplate для ListBoxItem

Оба варианта работают нормально, однако мне было интересно, воссоздается ли всплывающее окно каждый раз ?? (пожалуйста, сообщите)

Я думаю, что было бы лучше определить всплывающее окно в ControlTemplate содержащего ListBox, а не ListBoxItem? Я попытался это сделать, но не смог найти выражение привязки для свойства размещения относительно SelectedItem (оно отображается внизу ListBox, а не внизу ListBoxItem).

Есть предложения?

спасибо заранее. Майкл.

1 Ответ

1 голос
/ 05 февраля 2011

Всплывающее окно создается один раз для каждого элемента списка в обоих случаях.

Я бы не советовал использовать одно всплывающее окно для всех элементов в CotnrolTemplate для списка, поскольку это значительно усложняет ситуацию.Но если вы все еще хотите это сделать, вы можете установить Placement="Custom" в вашем всплывающем окне и указать CustomPopupPlacementCallback.В этом обратном вызове вы можете рассчитать размещение, используя позицию выбранного в данный момент элемента.

...