Вам придется самостоятельно управлять всплывающей подсказкой, используя методы Show и Hide, если вы хотите каким-либо образом контролировать, как и где она позиционируется с помощью инфраструктуры 2.0, если вы не хотите получать вызовы API Window.
К сожалению, похоже, что положение всплывающей подсказки задано очень и очень рано при создании. Во всплывающей подсказке есть только 3 события, и в этом случае нас не очень интересует Dispose.
Событие Draw запускается после события Popup, и кажется, что позиция уже установлена, поскольку свойство Bounds в PopupEventArgs доступно только для чтения.
Вот ссылка на одну из многих статей (на момент публикации) о создании пользовательского элемента управления:
http://andrusdevelopment.blogspot.com/2007/10/implementing-custom-tooltip-in-c.html
А документация MSDN по использованию методов Show и Hide во всплывающей подсказке на самом деле довольно приличная:
http://msdn.microsoft.com/en-us/library/44atyhsa(VS.80,printer).aspx
Извините, но не похоже, что есть быстрый и простой ответ на этот вопрос. Надеюсь, кто-то докажет, что я не прав, потому что оба саке.
Scott