Меню изображения не открывается при щелчке левой кнопкой мыши в XP - PullRequest
1 голос
/ 06 мая 2011

Я пытаюсь получить изображение (в WPF), которое показывает меню, если щелкнуть левой кнопкой мыши.Он хорошо работает в 7, однако, когда я пытаюсь использовать его в XP, он появляется только при щелчке правой кнопкой мыши?есть идеи?

Вот код XAML:

<Image x:Name="buttonHelp" Width="32" Height="32"  Margin="0,0,5,0" Source="/Little Registry Optimizer;component/Resources/Help.png" MouseEnter="button_MouseEnter" MouseLeave="button_MouseLeave" MouseDown="buttonHelp_MouseLeftButtonDown" />

Вот код C #:

private void button_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
    this.Cursor = Cursors.Hand;
}

private void button_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
    this.Cursor = Cursors.Arrow;
}

private void buttonHelp_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    ContextMenu contextMenu = new ContextMenu();
    this.buttonHelp.ContextMenu = contextMenu;

    contextMenu.Items.Add(CreateMenuItem(Properties.Resources.Help, "Help"));
    contextMenu.Items.Add(new Separator());
    contextMenu.Items.Add(CreateMenuItem(Properties.Resources.internet, "Visit Website"));
    contextMenu.Items.Add(CreateMenuItem(Properties.Resources.update, "Check for updates"));
    contextMenu.Items.Add(new Separator());
    contextMenu.Items.Add(CreateMenuItem(Properties.Resources.optimizer, "About..."));

    contextMenu.PlacementTarget = (System.Windows.UIElement)sender;
    contextMenu.IsOpen = true;
    contextMenu.StaysOpen = true;
}

Спасибо!

1 Ответ

0 голосов
/ 06 мая 2011

Просто чтобы вы знали, что я решил эту проблему, используя кнопку вместо изображения.Вы все еще можете установить кнопку, чтобы изображение было его содержимым.Затем вы можете просто подписаться на событие «Нажатие кнопок» (которое, как я знаю, будет работать на XP или чем-либо еще).

Еще одна вещь, которую я сделал, - это установка контекстного меню с помощью этого кода:

buttonHelp.ContextMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.Bottom;
ContextMenuService.SetPlacement(buttonHelp, System.Windows.Controls.Primitives.PlacementMode.Bottom);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...