Navbar prototype

This commit is contained in:
Natlinux
2022-11-12 23:25:38 +01:00
parent 83ce97c501
commit d2c021c5b7
13 changed files with 650 additions and 12 deletions

View File

@@ -8,6 +8,7 @@
<ResourceDictionary Source="Themes/ButtonTheme.xaml"/> <ResourceDictionary Source="Themes/ButtonTheme.xaml"/>
<ResourceDictionary Source="Themes/ModalTextblockTheme.xaml"/> <ResourceDictionary Source="Themes/ModalTextblockTheme.xaml"/>
<ResourceDictionary Source="Themes/Common.xaml"/> <ResourceDictionary Source="Themes/Common.xaml"/>
<ResourceDictionary Source="Themes/NavBarTemplate.xaml "/>
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>
</Application.Resources> </Application.Resources>

View File

@@ -56,7 +56,7 @@
<DataTemplate DataType="{x:Type vms:TournamentDetailsViewModel}"> <DataTemplate DataType="{x:Type vms:TournamentDetailsViewModel}">
<views:TournamentDetailsView/> <views:TournamentDetailsView/>
</DataTemplate> </DataTemplate>
<DataTemplate DataType="{x:Type vms:RootdatesViewModel}"> <DataTemplate DataType="{x:Type vms:NameListViewModel}">
<views:RootdatesView/> <views:RootdatesView/>
</DataTemplate> </DataTemplate>
</ContentControl.Resources> </ContentControl.Resources>

View File

@@ -49,6 +49,7 @@ namespace Apollon.WPF
else else
this.WindowState = WindowState.Maximized; this.WindowState = WindowState.Maximized;
this.Topmost = true;
} }

View File

@@ -0,0 +1,209 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks">
<ControlTemplate x:Key="Menu_SubMenu_Template"
TargetType="{x:Type MenuItem}">
<Border x:Name="border"
Background="Transparent"
BorderBrush="#0000a0"
CornerRadius="5"
BorderThickness="1"
Height="50"
Width="210">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="22"
Width="Auto" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="5" />
</Grid.ColumnDefinitions>
<!--// Icon //-->
<ContentPresenter x:Name="Icon"
ContentSource="Icon"
HorizontalAlignment="Left"
Height="25"
Width="35"
Margin="1,0,0,0"
VerticalAlignment="Center" />
<!--// Menu Text //-->
<ContentPresenter ContentSource="Header"
Grid.Column="2"
TextBlock.Foreground="#0000a0"
TextBlock.FontFamily="Arial"
TextBlock.FontSize="16"
HorizontalAlignment="Left"
RecognizesAccessKey="True"
VerticalAlignment="Center" />
<!--// Right Arrow Icon //-->
<iconPacks:PackIconMaterial Kind="ArrowRightBoldCircle"
Height="20"
Width="20"
Foreground="#0000a0"
Grid.Column="4"
HorizontalAlignment="Left"
VerticalAlignment="Center"/>
<!--// Popup //-->
<Popup x:Name="PART_Popup"
AllowsTransparency="true"
Focusable="false"
HorizontalOffset="2"
IsOpen="{Binding IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}"
Placement="Right"
PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}"
VerticalOffset="0">
<Border x:Name="SubMenuBorder"
Background="Transparent"
CornerRadius="5">
<ScrollViewer x:Name="SubMenuScrollViewer"
Style="{DynamicResource {ComponentResourceKey ResourceId=MenuScrollViewer, TypeInTargetAssembly={x:Type FrameworkElement}}}">
<Grid RenderOptions.ClearTypeHint="Enabled">
<Canvas HorizontalAlignment="Left"
VerticalAlignment="Top" />
<ItemsPresenter x:Name="ItemsPresenter"
KeyboardNavigation.DirectionalNavigation="Cycle"
Grid.IsSharedSizeScope="true"
KeyboardNavigation.TabNavigation="Cycle" />
</Grid>
</ScrollViewer>
</Border>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSuspendingPopupAnimation"
Value="true">
<Setter Property="PopupAnimation"
TargetName="PART_Popup"
Value="None" />
</Trigger>
<Trigger Property="Icon"
Value="{x:Null}">
<Setter Property="Visibility"
TargetName="Icon"
Value="Visible" />
</Trigger>
<Trigger Property="IsChecked"
Value="True">
<Setter Property="Visibility"
TargetName="Icon"
Value="Visible" />
</Trigger>
<Trigger Property="IsHighlighted"
Value="True">
<Setter Property="Background"
TargetName="border"
Value="orange" />
<Setter Property="BorderBrush"
TargetName="border"
Value="#404D5B" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="Item_Template"
TargetType="{x:Type MenuItem}">
<Border x:Name="border"
BorderBrush="#0000a0"
CornerRadius="5"
Background="Orange"
BorderThickness="{TemplateBinding BorderThickness}"
Height="50"
Width="250"
>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="22"
Width="Auto" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="5" />
</Grid.ColumnDefinitions>
<!--// Icon //-->
<ContentPresenter x:Name="Icon"
ContentSource="Icon"
HorizontalAlignment="Center"
Height="35"
Width="35"
Margin="10,0,0,0"
VerticalAlignment="Center" />
<!--// Menu Text //-->
<ContentPresenter ContentSource="Header"
Grid.Column="2"
TextBlock.Foreground="#0000a0"
TextBlock.FontFamily="Arial"
TextBlock.FontSize="16"
HorizontalAlignment="Left"
RecognizesAccessKey="True"
Margin="3,0,0,0"
VerticalAlignment="Center" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Icon"
Value="{x:Null}">
<Setter Property="Visibility"
TargetName="Icon"
Value="Visible" />
</Trigger>
<Trigger Property="IsChecked"
Value="True">
<Setter Property="Visibility"
TargetName="Icon"
Value="Visible" />
</Trigger>
<Trigger Property="IsHighlighted"
Value="True">
<Setter Property="Background"
TargetName="border"
Value="#d7e8fd" />
<Setter Property="BorderBrush"
TargetName="border"
Value="#404D5B" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ResourceDictionary>

View File

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Apollon.WPF.ViewModels namespace Apollon.WPF.ViewModels
{ {
public class RootdatesViewModel : ViewModelBase public class NameListViewModel : ViewModelBase
{ {
} }
} }

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace Apollon.WPF.ViewModels
{
public class NavigationBarViewModel : ViewModelBase
{
public ICommand NavigateNameListCommand { get;}
public ICommand GroupsCommand { get;}
}
}

View File

@@ -58,7 +58,7 @@ namespace Apollon.WPF.ViewModels
LoadTournamentsCommand = new LoadTournamentsCommand(this, tournamentStore); LoadTournamentsCommand = new LoadTournamentsCommand(this, tournamentStore);
AddTournamentCommand = new OpenAddTournamentCommand(tournamentStore, modalNavigationStore, navigationStore, selectedTournamentStore); AddTournamentCommand = new OpenAddTournamentCommand(tournamentStore, modalNavigationStore, navigationStore, selectedTournamentStore);
NavigateNameListCommand = new NavigateCommand<RootdatesViewModel>(navigationStore, () => new RootdatesViewModel()); NavigateNameListCommand = new NavigateCommand<NameListViewModel>(navigationStore, () => new NameListViewModel());
} }

View File

@@ -0,0 +1,379 @@
<UserControl x:Class="Apollon.WPF.Views.Components.NavBarView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Apollon.WPF.Views.Components"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Menu Height="450"
Background="Transparent"
Margin="0,20,0,0">
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="Turnierdaten"
Template="{StaticResource Menu_SubMenu_Template}"
Foreground="#0000a0"
FontFamily="Arial"
FontWeight="Bold"
FontSize="16"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="0 40">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="BowArrow"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="AccountMultiple"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Klassen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="ArrowProjectileMultiple"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Namenliste"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="BadgeAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Kl. Vereinsmeistersch."
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="BallotOutline"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Teilnehmer setzen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="ArrowProjectile"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="Daten"
Template="{StaticResource Menu_SubMenu_Template }"
Foreground="#0000a0"
FontFamily="Arial"
FontWeight="Bold"
FontSize="16"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="0 10">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="Berichte"
Template="{StaticResource Menu_SubMenu_Template }"
Foreground="#0000a0"
FontFamily="Arial"
FontWeight="Bold"
FontSize="16"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="Klassenprüfung"
Template="{StaticResource Menu_SubMenu_Template }"
Foreground="#0000a0"
FontFamily="Arial"
FontWeight="Bold"
FontSize="16"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="0 40">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Gruppen"
Template="{StaticResource Item_Template}">
<MenuItem.Icon>
<iconPacks:PackIconMaterial Kind="FileAccount"
Height="20"
Width="20"
Foreground="#0000a0"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>
</Grid>
</UserControl>

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Apollon.WPF.Views.Components
{
/// <summary>
/// Interaction logic for NavBarView.xaml
/// </summary>
public partial class NavBarView : UserControl
{
public NavBarView()
{
InitializeComponent();
}
}
}

View File

@@ -9,7 +9,7 @@
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/> <ColumnDefinition Width="auto"/>
<ColumnDefinition MaxWidth="650"/> <ColumnDefinition Width="600"/>
<ColumnDefinition Width="auto"/> <ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Image Grid.Column="0" <Image Grid.Column="0"

View File

@@ -6,17 +6,20 @@
xmlns:components="clr-namespace:Apollon.WPF.Views.Components" xmlns:components="clr-namespace:Apollon.WPF.Views.Components"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks" xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:local="clr-namespace:Apollon.WPF.Views" xmlns:local="clr-namespace:Apollon.WPF.Views"
mc:Ignorable="d" mc:Ignorable="d">
d:DesignHeight="450" d:DesignWidth="800"> <Grid Margin="20" >
<Grid Margin="50">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="100"/> <RowDefinition Height="120"/>
<RowDefinition/> <RowDefinition Height="*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/> <ColumnDefinition Width="250"/>
<ColumnDefinition/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Border Grid.Column="2" Grid.Row="2"
BorderBrush="#0000a0"
BorderThickness="1"
CornerRadius="2"></Border>
<Button Width="35" <Button Width="35"
Height="35" Height="35"
@@ -31,6 +34,7 @@
Foreground="#0000a0"/> Foreground="#0000a0"/>
</Button> </Button>
<components:TournamentDetails Grid.Column="1"/> <components:TournamentDetails Grid.Column="1" Margin="0,35,0,10" HorizontalAlignment="Center"/>
<components:NavBarView Grid.Row="1" Margin="0 ,0 ,2, 30"/>
</Grid> </Grid>
</UserControl> </UserControl>