Blazor - изменить макет контейнера при обнаружении указанного c (пользовательского) компонента - PullRequest
0 голосов
/ 13 января 2020

Возможно, это странный вопрос, и было бы излишне делать это таким образом, но как новичок в Blazor Мне любопытно, если это возможно.

Могу ли я изменить стиль мой элемент div в зависимости от указанных c компонентов в этом элементе div?

Итак, чтобы объяснить это немного подробнее, я создал 2 navbars, которые я могу реализовать, horizontal navbar и vertical navbar. Эти пользовательские navbar components могут быть добавлены в файл MainLayout.razor следующим образом:

<HorizontalNavbar></HorizontalNavbar>

<div class="main">
    <h1>my testing title</h1>
</div>

Основной макет импортируется на все мои страницы Blazor (как и по умолчанию), в файл _Host.cshtml добавлен <app> div / class. Я хочу изменить стиль приложения на flex-direction: column;, если файл основного макета содержит компонент HorizontalNavbar, и на flex-direction: row;, если основной макет содержит VerticalNavbar. Возможно ли это в любом случае?

Конечно, я мог бы просто определить класс-оболочку с надлежащими направлениями flex внутри каждого из компонентов navbar, но тогда я получу что-то вроде:

<HorizontalNavbar>
   All my inner content
</HorizontalNavbar>

Что не ' выглядит очень хорошо. Есть идеи для этого? Возможно, что-то вроде этого: https://blazorfiddle.com/s/385py5jb, но затем с событием / триггером нахождения определенного c control / css класса?

...