Как удалить системное меню в 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">
Удачи.