Как удалить системное меню в WPF?

В соответствии с этой страницами MSDN, если бы я использовал Window, тогда я мог бы отключить блок управления в верхнем левом углу, установив это ложно. Например: this.ControlBox = false;

ControlBox имеет параметры Maximize, Minimize, Restore и Close
I want to disable this box in my own application

Но поскольку я использую RibbonWindow вместо Window, как бы отключить блок управления в этой ситуации?

Этот вопрос очень близок, но я ищу все время для отключения SystemMenu, а не только для предотвращения Alt + Space. Это потому, что (я думаю), слушатель действий для SystemMenu в верхнем левом углу блокирует интерактивный элемент пользовательского интерфейса в моем XAML.

Я должен отметить, что это не проблема с Windows Server 2003, но когда приложение открывается в Windows 7, SystemMenu/ControlBox мешает элементу интерфейса в верхнем левом углу.

Кроме того, я обнаружил, что вмешательство в системное меню обычно приводит к тому, что кнопки в правом верхнем углу приложения деактивируются, но я не хочу, чтобы это произошло.

Спасибо за ссылка Eammonn. Я думаю, что этот человек пытался сделать, это отключить кнопку [X] в верхнем правом углу, а не меню в верхнем левом углу, но я могу ошибаться. Причина, по которой я не думаю, что это сработает, заключается в том, что они используют <Window x:Class=, и я использую <dc:RibbonWindow x:Class=. Это имеет значение?

Ответы

Ответ 1

Окно WPF не является объектом System.Windows.Forms, поэтому this.ControlBox = false не будет работать. В wpf нет явного свойства для этого, но см. Эту статью

http://winsharp93.wordpress.com/2009/07/21/wpf-hide-the-window-buttons-minimize-restore-and-close-and-the-icon-of-a-window/

В нем описывается, как можно удалить версию блока управления WPF.

Элементы управления WPF выводятся из System.Windows.Controls, а не System.Windows.Forms

Ответ 2

Вы устанавливаете окно

<Window ...
    WindowStyle="ToolWindow"
    ResizeMode="NoResize">

Удачи.