Я столкнулся с действительно странным поведением (по крайней мере для меня) при использовании ContextMenu. Вот упрощенная XAML (MainWindow.xaml):Странное поведение ContextMenu: размещение «зеркальное отображение»
<Window x:Class="ContextMenuTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="500"
Height="300">
<Button Content="Do this" Height="25" Width="80" ContextMenuService.Placement="Right">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Do this" />
<MenuItem Header="Do that" />
</ContextMenu>
</Button.ContextMenu>
</Button>
</Window>
С этой XAML, ожидаемый результат правой кнопкой мыши на кнопке на это ContextMenu помещается справа от кнопки. Но результат:
http://i.stack.imgur.com/pSd0Q.png
Итак, ContextMenu странным образом помещен в оставил кнопки. Я также попытался установить имущество ContextMenuService.Placement
на Left
, Top
, Bottom
. И результат:
Left
-> Контекстное помещается в правой кнопки.Top
-> ContextMenu находится в верхней части справа кнопки. (Не сверху- покинул)Bottom
-> Контекстное помещается в правой снизу- кнопки (не оставили снизу-)
Мне кажется, что система координат зеркальный (то есть начало координат системы находится в верхнем правом углу окна, а не слева вверху). Я вообще не знаю, почему. Мне нужна помощь, чтобы разместить ContextMenu в левом нижнем углу кнопки.
(приписка Этот пример проекта является такой же, как проект по умолчанию, созданный в Visual Studio 2013, за исключением MainWindow.xaml.)