I am new to using doxygen 1.8.7. I am trying to add the Architecture diagram to be the part of the API documentation generated for my C# project using doxygen. I generated the default doxygen Layout file (DoxygenLayout.xml) and edited it by adding the below changes -
<navindex>
<tab type="mainpage" visible="yes" title="">
<tab type="mainpage" visible="yes" title="Audience" />
<tab type="user" url="#ref Architecture" title="My Page" />
</tab>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
The Architecture diagram is an external document and is not generated by running doxygen.
So my question is -
Where do I put this Architecture Document?? Or should it be a part of the project solution.
This is very simple to accomplish. You've already done the hard part by generating the custom DoxygenLayout.xml file. Now, you just need to add a custom tab to it:
<tab type="user" url="architecture.html" title="Architecture"/>
You can put that wherever you want under the <navindex> tag. For testing purposes, you can just toss it in at the very end of the group.
The title attribute can be any text string that you want.
The url attribute can be a URL to any file you want. It doesn't have to be an HTML file, of course. It can be a PDF, Word DOC, or whatever. You can also use "#ref mypage" to link to a doxygen page named mypage (see the documentation for details).
Using the following command generates the default DoxygenLayout.xml document:
doxygen -l
The next step is to mention the layout file in the configuration file:
LAYOUT_FILE = DoxygenLayout.xml
Doxygen GUI 1.8.20
Related
This is my AppShell XAML file (not sure this is right):
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="MauiUI.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MauiUI"
xmlns:pages="clr-namespace:MauiUI.Pages"
FlyoutHeaderBehavior="CollapseOnScroll"
FlyoutBackdrop="Silver">
<FlyoutItem Title="Amazons of Volleyball">
<ShellContent Title="Amazons of Volleyball"
Route="home"
ContentTemplate="{DataTemplate pages:MainPage}" />
</FlyoutItem>
<FlyoutItem Title="Add new Amazon">
<ShellContent Title="Add new Amazon"
Route="add-or-update"
ContentTemplate="{DataTemplate pages:AddOrUpdatePlayer}" />
</FlyoutItem>
<ShellContent Title="Amazons of Volleyball"
IsVisible="False"
ContentTemplate="{DataTemplate pages:SplashPage}"
Route="splash" />
</Shell>
Now the hamburger menu is appearing, but to see the content I had to drag over it my mouse and pull from left to right it to appear.
I am on Android emulator in windows.
You can add Shell.FlyoutBehavior="Flyout" to your AppShell.
Here is the example:
<Shell
x:Class="MauiApp15.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MauiApp15"
Shell.FlyoutBehavior="Flyout"
>
I've been trying to achieve hiding Top Navigations Bar in one of the shell tabs with no success.
I tried following this Tutorial with no success (might be outdated ?).
Here is my code :
<Shell
x:Class="Smogon_MAUIapp.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Smogon_MAUIapp"
Shell.FlyoutBehavior="Disabled">
<!--Main Page-->
<TabBar>
<Tab Icon="Resources/navbar/smogon.png" Shell.NavBarIsVisible="False" >
<ShellContent
Shell.NavBarIsVisible="False"
NavigationPage.HasNavigationBar="False"
ContentTemplate="{DataTemplate local:Pages.MainPage}"
Route="MainPage">
</ShellContent>
<ShellContent
Shell.NavBarIsVisible="False"
NavigationPage.HasNavigationBar="False"
ContentTemplate="{DataTemplate local:Pages.Forum}"
Route="Forum"/>
<ShellContent
Shell.NavBarIsVisible="False"
NavigationPage.HasNavigationBar="False"
ContentTemplate="{DataTemplate local:Pages.SubForum}"
Route="SubForum"/>
<ShellContent
Shell.NavBarIsVisible="False"
NavigationPage.HasNavigationBar="False"
ContentTemplate="{DataTemplate local:Pages.Thread}"
Route="Thread"/>
</Tab>
<Tab Icon="Resources/Images/search.png" Shell.NavBarIsVisible="False">
<ShellContent
ContentTemplate="{DataTemplate local:Pages.Search}"
Route="Search">
</ShellContent>
</Tab>
<Tab Icon="Resources/Images/snorlax.png" Shell.NavBarIsVisible="False">
<ShellContent
ContentTemplate="{DataTemplate local:Pages.Profile}"
Route="Profile" />
</Tab>
<Tab Icon="Resources/Images/showdown.png" Shell.NavBarIsVisible="False">
<ShellContent
ContentTemplate="{DataTemplate local:Pages.Showdown}"
Route="Showdown" />
</Tab>
</TabBar>
</Shell>
and the code behind :
public partial class AppShell : Shell
{
public AppShell()
{
Routing.RegisterRoute("Home", typeof(MainPage));
Routing.RegisterRoute("Forum", typeof(Forum));
Routing.RegisterRoute("SubForum", typeof(SubForum));
Routing.RegisterRoute("Thread", typeof(Smogon_MAUIapp.Pages.Thread));
Routing.RegisterRoute("Search", typeof(Search));
Routing.RegisterRoute("Profile", typeof(Profile));
Routing.RegisterRoute("ShowDown", typeof(Showdown));
InitializeComponent();
}
}
Here is a screenshot of what I am getting and what I'd like :
Gotten result Vs Wanted one
Help would be appreciated ! =)
I tried removing the top bar of one of my tabs in my shell. But i could only remove the titles and the bar is still there.
Update 1 :
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Smogon_MAUIapp.Pages.Forum"
Title="Forum"
Shell.NavBarIsVisible="False">
<VerticalStackLayout>
</VerticalStackLayout>
</ContentPage>
I did that but it didn't change anything =)
In your Pages, e.g. your Forum.xaml, you could set Shell.NavBarIsVisible="False" to hide the navigation bar, e.g.:
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Shell.NavBarIsVisible="False">
<!-- ... -->
</ContentPage>
This should be done in the ContentPage. It works fine for me like that using tabs:
Side note: NavigationPage is not supported when using Shell, therefore you can safely remove NavigationPage.HasNavigationBar="False" from your Shell definition, because it's obsolete.
This is NOT the NavigationBar on the picture.
Actually, your code is working perfectly and the bar is hidden.
Each Tab is ShellSection, and if this ShellSection has more than one Item in the list of ShellContents, this bar appears, so change between them becomes possible.
If you want, you can change your XAML to "true" and you will see another blue line appear above the one you are concerned about.
This will be the actual NavigationBar.
This aside, what really bothers me is why you add several ShellContents, and want to remove the only way to switch between them.
If you want custom navigation, you do not have to put them inside the TabBar. You can put them under it (just like separate Shell Items) and then navigate to them normally.
Edit: Please notice in the accepted answer of the link you gave, how the programmer is not adding every single ShellContent at once, but is using custom navigation events, and using a reference of its Tab for adding/removing them one by one, so that this bar does not render.
I want to add a second set of tabs on a page that is accessed through tabs defined in AppShell in my .NET MAUI app. According to the documentation, TabbedPage is not compatible with .NET MAUI apps that use AppShell. How do I achieve this -- preferably with standard XAML and not through a third party solution.
Here's the look I want:
As mentioned, I define my tabs in AppShell like this:
<FlyoutItem Title="Home" Icon="home.png">
<Tab Title="Tiger" Icon="tiger.png">
<ShellContent Route="Tiger" ContentTemplate="{DataTemplate local: Tiger}" />
</Tab>
<Tab Title="Giraffe" Icon="giraffe.png">
<ShellContent Route="Giraffe" ContentTemplate="{DataTemplate local: Giraffe}" />
</Tab>
<Tab Title="Moose" Icon="moose.png">
<ShellContent Route="Moose" ContentTemplate="{DataTemplate local: Moose}" />
</Tab>
<Tab Title="Elephant" Icon="elephant.png">
<ShellContent Route="Elephant" ContentTemplate="{DataTemplate local: Elephant}" />
</Tab>
</FlyoutItem>
If I understand your question correctly, you just need to add additional <ShellContent> elements inside your <Tab> definitions as described in the docs:
<FlyoutItem Title="Home" Icon="home.png">
<Tab Title="Tiger" Icon="tiger.png">
<ShellContent Route="Tiger" ContentTemplate="{DataTemplate local: Tiger}" />
<ShellContent Route="Tiger2" ContentTemplate="{DataTemplate local: Tiger2}" />
<ShellContent Route="Tiger3" ContentTemplate="{DataTemplate local: Tiger3}" />
</Tab>
<Tab Title="Giraffe" Icon="giraffe.png">
<ShellContent Route="Giraffe" ContentTemplate="{DataTemplate local: Giraffe}" />
</Tab>
<Tab Title="Moose" Icon="moose.png">
<ShellContent Route="Moose" ContentTemplate="{DataTemplate local: Moose}" />
</Tab>
<Tab Title="Elephant" Icon="elephant.png">
<ShellContent Route="Elephant" ContentTemplate="{DataTemplate local: Elephant}" />
</Tab>
</FlyoutItem>
I don't know if this works together with the <FlyoutItem>, though.
You can not.
You can use this auto wrapping, and get confused all you want.
But in the end, it all gets to the point, where your TabBar (that is Shell Item), contains Tabs (that are Shell Sections) and those contain a list of Shell Contents.
You can navigate between Items, and the Shell itself will provide means to navigate between Sections and Contents.
But those are not tabs.
Is there an opportunity to customize the header bar of a content page?
I want to add some controls after the title:
How can i achieve this?
Here the example code of the page:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="FluxMobile.Pages.Arrival"
Title="Arrival">
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
The execution of this page is a shell content:
<ShellContent Title="{x:Static res:AppRes.Arrival}" Icon="arrival.png" ContentTemplate="{DataTemplate pages:Arrival}" Route="Arrival" />
Thank you!
I have a .net maui application with AppShell that defines a tabbar with this code:
<TabBar>
<Tab Title="{x:Static resources:Strings.HomeTitle}">
<Tab.Icon>
<FontImageSource FontFamily="MaterialIconsRound" Glyph="home" />
</Tab.Icon>
<ShellContent>
<dashboard:DashboardPage />
</ShellContent>
</Tab>
<Tab Title="{x:Static resources:Strings.StatisticsTitle}">
<Tab.Icon>
<FontImageSource FontFamily="MaterialIconsRound" Glyph="donut_small" />
</Tab.Icon>
<ShellContent Title="{x:Static resources:Strings.StatisticsTitle}">
<statistics:StatisticSelectorPage />
</ShellContent>
</Tab>
<Tab Title="{x:Static resources:Strings.MoreTitle}">
<Tab.Icon>
<FontImageSource FontFamily="MaterialIconsRound" Glyph="more_horiz" />
</Tab.Icon>
<ShellContent>
<overflowMenu:OverflowMenuPage />
</ShellContent>
</Tab>
</TabBar>
On Android the icons do change correctly the color depending on the device theme or when they are selected. On iOS only the text changes.
Is that a bug or do I have to set a specific style for that?
There is a known issue about this problem. And this issue has been moved to the Backlog milestone.
You can follow it up here: https://github.com/dotnet/maui/issues/8244 .
Thanks for your support and feedback for maui.