I am unable to disable if I use WindowChrome.WindowChrome style. Please let me know your input to resolve this problem. Without WindowChrome, I am able to disable context menu with the same piece of code.
<Window x:Class="ConextMenu_Sample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" WindowStyle="None">
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="35"
CornerRadius="0"
ResizeBorderThickness="5"
UseAeroCaptionButtons="False"
/>
</WindowChrome.WindowChrome>
<Window.Resources>
</Window.Resources>
<Grid>
</Grid>
</Window>
public partial class MainWindow : Window { private const uint WP_SYSTEMMENU = 0x02; private const uint WM_SYSTEMMENU = 0xa4; public MainWindow() { InitializeComponent(); Loaded += OnLoaded; } private void OnLoaded(object sender, RoutedEventArgs e) { IntPtr windIntPtr = new WindowInteropHelper(this).Handle; HwndSource hwndSource = HwndSource.FromHwnd(windIntPtr); hwndSource.AddHook(new HwndSourceHook(WndProc)); } private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam, ref bool handled) { if ((msg == WM_SYSTEMMENU) && (wparam.ToInt32() == WP_SYSTEMMENU)) { handled = true; } return IntPtr.Zero; } }