All the controls missing in WPF. Over 1 million downloads.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.4 KiB

using System;
using System.Windows;
namespace Microsoft.Windows.Controls.Core.Utilities
{
public class ContextMenuUtilities
{
public static readonly DependencyProperty OpenOnMouseLeftButtonClickProperty = DependencyProperty.RegisterAttached("OpenOnMouseLeftButtonClick", typeof(bool), typeof(ContextMenuUtilities), new FrameworkPropertyMetadata(false, OpenOnMouseLeftButtonClickChanged));
public static void SetOpenOnMouseLeftButtonClick(FrameworkElement element, bool value)
{
element.SetValue(OpenOnMouseLeftButtonClickProperty, value);
}
public static bool GetOpenOnMouseLeftButtonClick(FrameworkElement element)
{
return (bool)element.GetValue(OpenOnMouseLeftButtonClickProperty);
}
public static void OpenOnMouseLeftButtonClickChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
var control = (FrameworkElement)sender;
if ((bool)e.NewValue)
{
control.PreviewMouseLeftButtonDown += (s, args) =>
{
if (control.ContextMenu != null)
{
control.ContextMenu.PlacementTarget = control;
control.ContextMenu.IsOpen = true;
}
};
}
//TODO: remove handler when set to false
}
}
}