Определить расположение ContextMenu на холсте? - PullRequest
0 голосов
/ 08 марта 2012

У меня есть ContextMenu, связанное с Canvas

<UserControl>
  <Grid myGrid>
    <Canvas myCanvas>
      <ContextMenu myMenu />...

Я нажал на запись в menuItem и хотел бы вставить в это место элемент управления (метка, myLabel).Как установить координаты для myLabel, чтобы она соответствовала щелчку правой кнопкой мыши (фактическое «местоположение» ContextMenu)? ..

1 Ответ

1 голос
/ 08 марта 2012

Вы можете использовать метод ContextMenu TranslatePoint , например, в обработчике события Click MenuItem, например:

Point location = myMenu.TranslatePoint(new Point(), myCanvas);

, где myMenu - ContextMenu:

<UserControl> 
    <Grid ...> 
        <Canvas ...> 
            <ContextMenu Name=myMenu />... 

Вот как вы можете получить ContextMenu от отправителя события Click MenuItem:

FrameworkElement parent = sender as FrameworkElement;
while (parent != null && !(parent is ContextMenu))
{
    parent = parent.Parent as FrameworkElement;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...