Как поместить содержимое (элементы управления) в область заголовка окна WPF C# с обычными кнопками

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

Попытки решения:

Я пытался использовать объект WindowChrome для достижения желаемого результата, но он всегда оставлял поле в 5 пикселей слева и справа от строки заголовка, поэтому кнопки окна смещались внутрь, что делало его уродливым, дерганным и неофициальным.

Я попытался переопределить WndProc (я имею в виду зацепку), чтобы успешно противодействовать этому нежелательному эффекту, но он привел ко многим нежелательным артефактам, таким как, в некоторых случаях, заголовок заголовка полностью де-рендеринг; кнопки все еще будут работать, но они будут полностью невидимы, пока не будет перетащено окно.

Я пробовал методы, которые используют только собственные API-интерфейсы Windows для управления окнами и рендеринга, но они не дают желаемого результата со слишком толстыми полями, непоследовательными границами изменения размера и другими проблемами.

Заключение:

Я знаю, что должен быть относительно простой и неуклюжий способ сделать это, потому что сам файловый менеджер имеет то, что я пытаюсь реализовать. Если вы посмотрите в верхнем левом углу, там находится набор инструментов, за которым следует имя каталога, в котором вы находитесь, или просто "Проводник".

Как мне добиться чего-то подобного? Заранее благодарю всех за помощь.

0 ответов

Другие вопросы по тегам