Я уже публиковал это как проблему с RRUZ's Vcl Style Utils. библиотека на GitHub. Тем не менее, я подумал, что могу получить некоторую помощь и здесь.
Я использую стили VCL для создания пользовательского интерфейса Windows 10, в частности, используя стиль «Windows 10 Dark». Я также использую VCL Style Utils, чтобы иметь возможность добавлять кнопки в неклиентскую область в строке заголовка. Я пытаюсь полностью игнорировать значок формы и его функции по умолчанию в пользу кнопки «Назад», как это делают большинство новых приложений для Windows 10.
Я пытаюсь разместить кнопку в дальнем верхнем левом углу формы, используя компонент TNCControls
в Vcl.Styles.NC
. Однако, когда я размещаю кнопку над значком формы, кнопку нельзя щелкнуть в области значка. Хотя я могу перекрывать значок, щелчок в этой конкретной области строки заголовка всегда открывает системное меню формы вместо нажатия кнопки, которую я разместил там.
Я не хочу, чтобы это меню появлялось при нажатии на него:
Как я сейчас создаю эту кнопку:
procedure TfrmTestMain.SetupTitleBar;
var
B: TNCButton;
begin
FNCControls:= TNCControls.Create(Self);
B:= FNCControls.ButtonsList.Add;
B.Style := TNCButton.TNCButtonStyle.nsTranparent;
B.BoundsRect := Rect(0, 0, 45, 32);
B.UseFontAwesome:= True;
B.Caption := '';
B.ImageAlignment:= TImageAlignment.iaCenter;
B.ImageStyle:= TNCButton.TNCImageStyle.isNormal;
B.ImageIndex:= fa_chevron_left;
end;
Что я пробовал до сих пор:
Иконка формы заменена полностью пустым файлом .ico.
Меняю стиль формы на bsSizeToolWin, но строка заголовка становится слишком маленькой, и я теряю кнопки сворачивания/разворачивания.
Изменение стиля формы на bsDialog, но я получаю тот же эффект, что и № 2 выше, а также не могу изменить размер формы.
Убедитесь, что стиль кнопки — nsPushButton, и хотя он закрывает значок формы, щелчок по области по-прежнему щелкает значок, который, в свою очередь, показывает системное меню по умолчанию.
После все в этой теме, но вывод таков, что Windows заставляет вас иметь этот значок.
Удалено
biSystemMenu
из свойстваBorderIcons
формы, но это также удаляет кнопки по умолчанию в правом верхнем углу формы, что вынуждает меня размещать там свои собственные системные кнопки.
Как полностью исключить значок формы и его функции по умолчанию в пользу кнопки «Назад» в стиле Windows 10?
biSystemMenu
в BorderIcons будет работать, но по какой-то причине в Берлине также удаляются кнопки свертывания, развертывания и закрытия. Не уверен, когда это сломалось. - person Ken White   schedule 04.09.2016