3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
.NET 6

MAUI - кастомная верхняя часть окна для десктопа

05.02.2022, 15:44. Показов 3192. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех. Изучаю немного MAUI/Blazor и встал вопрос касаемо самого окна (для десктопа). На WPF я могу сделать что-то в этом духе:



Может подсказать кто-нибудь (возможно кто работал с UWP наверное), как можно поменять верхнюю часть окна?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2022, 15:44
Ответы с готовыми решениями:

Тормозит верхняя часть монитора
На мониторе Samsung EX2220 верхняя часть экрана почему-то тормозит и обновляется медленнее нижней, за счет чего видно яркое деление...

Верхняя часть лаяута уходит за пределы экрана
если клавиатура открыта то верхняя часть лаяута уходит вверх за пределы экрана.. (Action bar соответственно тоже) Что это может...

Активация кнопки, верхняя панель окна
Учусь работать с делфи. Понемногу разбираюсь. Собрал небольшую программку.. Теперь вопрос: как сделать так, чтобы кнопка Close Или...

12
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
05.02.2022, 16:44
ForeverFast, уф, это очень геморно, на самом-то деле. Сразу скажу — передать её полностью не получится — специфика UWP.

Сегодня занят, не думаю что кто-то в теме ответит. Ожидайте.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
05.02.2022, 17:17  [ТС]
limeniye, Понял вас.

Цитата Сообщение от limeniye Посмотреть сообщение
Сегодня занят, не думаю что кто-то в теме ответит. Ожидайте.
Хорошо. Буду благодарен за любую информацию, потому что я либо вопрос не так гуглил, либо это и правда специфичный кейс.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
05.02.2022, 17:51

Не по теме:


ошибся. Не "передать", а "переделать". Т9*



Пользуясь случаем, дополню:

Суть в том, что UWP окна — это часть API UAP, и зависит стиль окна — от них.
Сделать кастомное окно, как в WPF, например с закруглёнными краями (если есть желание) — нельзя.
Сделать окно круглым, или без верхнего навигационного меню — нельзя.

Добавлено через 3 минуты
Но можно пойти на хитрости стилизации. Приведу пример с Gmail в WndowsStore, он, всё-таки, без верхней белой полосы.
Так сделать можно, но я вижу, что у Вас на картинке есть поиск. А вот поиск, скорее всего, нельзя будет сделать, потому что в той области находится невидимый объект, за который перетаскивается окно.
Вы можете поместить туда поиск, но, скорее всего, будет некликабельным.
Но, я думаю, можно покапать в область маршрутизации команд, но это уже будет трудно и, мне кажется, безрезультатно.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
05.02.2022, 23:49  [ТС]
Звучит конечно это всё печально...

Касаемо кликабельности - в WPF есть свойство, которое указывает надо ли их (элементы) обрабатывать как область, которой можно перемещать окно. Надеялся, что что-то подобное будет и для UWP...

Я видел в UWP класс окна (Window), но ничего полезного для себя не нашёл. И как я понял - отключив вообще верхнюю часть окна, я не смогу воспроизвести стандартный функционал, при написании кастомного page/shell с нужными мне элементами?
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
05.02.2022, 23:55
Лучший ответ Сообщение было отмечено ForeverFast как решение

Решение

Цитата Сообщение от ForeverFast Посмотреть сообщение
Касаемо кликабельности - в WPF есть свойство, которое указывает надо ли их (элементы) обрабатывать как область, которой можно перемещать окно. Надеялся, что что-то подобное будет и для UWP...
Я понимаю, но скорее всего в UWP так нельзя. То есть шаблон окна -- не изменный.

Как я и говорил Выше, гляньте на пример Mail


Обратите внимание где находится поиск и где находится кнопка меню. Не в самом верху, а есть некий отступ. Я догадываюсь по каким причинам. Потому что если бы они были выше -- на них нельзя было бы кликнуть.
1
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
05.02.2022, 23:59  [ТС]
Цитата Сообщение от limeniye Посмотреть сообщение
Как я и говорил Выше, гляньте на пример Mail
Идею понял.

Благодарю за предложенную идею. Буду пробовать.

К слову - на работе подсказали о неком прокси, но пока никакой конкретики. Возможно если найду прямое решение - напишу в этом топике его суть.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
06.02.2022, 01:16
Пока дам, что есть:

App.xaml.cs, в методе OnLaunched, вставьте это:
C#
1
2
3
4
5
6
7
8
9
10
11
12
        protected override void OnLaunched(LaunchActivatedEventArgs args)
        {
            var coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
            coreTitleBar.ExtendViewIntoTitleBar = true;
 
            Window.Current.SetTitleBar(null);
 
            var appTitleBar = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
            appTitleBar.TitleBar.ButtonBackgroundColor = Colors.Transparent;
 
            // some code
        }
Добавлено через 2 минуты
Цитата Сообщение от ForeverFast Посмотреть сообщение
К слову - на работе подсказали о неком прокси
Любопытно. Будет какая-то информация, делитесь -- будет полезной!
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
06.02.2022, 02:37
Тут про TitleBar что-то есть:
https://github.com/dotnet/maui/issues/4267
https://github.com/dotnet/maui/issues/3864
https://github.com/dotnet/maui/issues/2190
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
06.02.2022, 02:40
Someone007, сильно не вникал, но как я понял -- это не то. Это TitleBar для телефона. Там же Shell.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
06.02.2022, 09:51  [ТС]
Цитата Сообщение от limeniye Посмотреть сообщение
вставьте это
Выдало следующее (почти на все обращения к статически классам):

System.Runtime.InteropServices.COMExcept ion: 'Элемент не найден. (0x80070490)'

Возможно в MAUI просто не используются эти классы, поэтому он не может найти ничего.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
06.02.2022, 11:09
я гляну чуть позже
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
06.02.2022, 17:36
Цитата Сообщение от ForeverFast Посмотреть сообщение
Возможно в MAUI просто не используются эти классы, поэтому он не может найти ничего.
Проверил, у меня тоже ошибки при разуске приложения. Но касательно того, что он не использует эти классы -- сомневаюсь. Я думаю над этими классами у MAUI свои "обёртки", которые не дают прямого доступа. В MAUI не специлизируюсь, пару раз всего запускал, так что подсказать не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2022, 17:36
Помогаю со студенческими работами здесь

Как сделать что бы весь калькулятор выводился сразу, а не только верхняя его часть?
Как сделать что бы весь калькулятор выводился сразу, а не только верхняя его часть? И как я могу закрыть циферблат с правой стороны и...

Python для десктопа
Здравствуйте. Интересует вопрос: целесообразно ли применять Python для написания десктопных программ? И насколько это сложно по сравнению с...

Тема для десктопа
Здравствуйте! Была тема для десктопа в RedHat based дистрибутивах - контурный земной шар с городами, при этом показывает время и...

Можно ли захватить часть (фрагмент) окна для вывода графики openGL
Хочу в WinAPI-проекте сделать заставку на OpenGL, но при захвате контекста и выводе графики пропадает панель инструментов и строка...

C# подходит для десктопа и фронтэнда?
Привет. Подскажите, C# подходит для десктопа и фронтэнда? С фреймворками конечно


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru