UX-Update 2.0, Neues Dashboard
This commit is contained in:
@@ -146,6 +146,20 @@
|
||||
|
||||
<ScrollViewer>
|
||||
<StackPanel Classes="navitems" Margin="8,12,8,0" Spacing="2">
|
||||
<Button Classes="navitem" HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Left" CornerRadius="6"
|
||||
Click="OnOpenCommandPaletteClick"
|
||||
ToolTip.Tip="Suchen und schnell erfassen (Strg/⌘+K)"
|
||||
AutomationProperties.Name="Suchen und schnell erfassen">
|
||||
<Grid ColumnDefinitions="Auto,*,Auto">
|
||||
<TextBlock Classes="navicon" Text="⌕" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Classes="navlabel" Text="Suchen / Erfassen"/>
|
||||
<TextBlock Grid.Column="2" Classes="navlabel" Text="⌘K" FontSize="10" Opacity="0.45"
|
||||
VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
<Separator Margin="4,6"/>
|
||||
|
||||
<Button Classes="navitem" Classes.active="{Binding IsDashboardActive}" HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Left"
|
||||
CornerRadius="6"
|
||||
@@ -241,6 +255,77 @@
|
||||
|
||||
</DrawerPage>
|
||||
|
||||
<!-- Globale Suche und Schnellerfassung (14.2). Bewusst als Overlay auf der aktuellen Seite:
|
||||
Der Nutzer behält den Kontext und kann mit Escape ohne Navigation zurückkehren. -->
|
||||
<Border Background="#A0000000" IsVisible="{Binding IsCommandPaletteOpen}"
|
||||
AutomationProperties.Name="Globale Suche und Schnellerfassung">
|
||||
<Grid>
|
||||
<Button Background="Transparent" BorderThickness="0"
|
||||
Command="{Binding CloseCommandPaletteCommand}"
|
||||
AutomationProperties.Name="Suche schließen"/>
|
||||
<Border Width="680" MaxHeight="570" Margin="24" Padding="0"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Top"
|
||||
Background="{DynamicResource AppCardBackgroundBrush}"
|
||||
BorderBrush="{DynamicResource AppCardBorderBrush}" BorderThickness="1"
|
||||
CornerRadius="12">
|
||||
<Grid RowDefinitions="Auto,Auto,*,Auto">
|
||||
<Grid Grid.Row="0" ColumnDefinitions="Auto,*,Auto" Margin="18,16,18,10">
|
||||
<TextBlock Text="⌕" FontSize="24" VerticalAlignment="Center" Margin="0,0,10,0"/>
|
||||
<TextBox x:Name="CommandPaletteSearchBox" Grid.Column="1"
|
||||
Text="{Binding CommandPalette.Query, UpdateSourceTrigger=PropertyChanged}"
|
||||
PlaceholderText="Schüler, Lerngruppe, Klausur oder Aufgabe suchen …"
|
||||
FontSize="16" BorderThickness="0" Background="Transparent"
|
||||
AutomationProperties.Name="Suchbegriff"/>
|
||||
<Button Grid.Column="2" Content="Esc" FontSize="10" Padding="8,3"
|
||||
Command="{Binding CloseCommandPaletteCommand}"
|
||||
AutomationProperties.Name="Suche schließen"/>
|
||||
</Grid>
|
||||
<Separator Grid.Row="1"/>
|
||||
<ListBox Grid.Row="2" ItemsSource="{Binding CommandPalette.Results}"
|
||||
SelectedItem="{Binding CommandPalette.SelectedResult}"
|
||||
Background="Transparent" BorderThickness="0" Margin="8"
|
||||
MaxHeight="420">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:GlobalSearchResult">
|
||||
<Button Background="Transparent" BorderThickness="0" Padding="10,8"
|
||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"
|
||||
Command="{Binding $parent[Window].((vm:MainWindowViewModel)DataContext).CommandPalette.ExecuteCommand}"
|
||||
CommandParameter="{Binding}">
|
||||
<Grid ColumnDefinitions="38,*,Auto">
|
||||
<Border Width="30" Height="30" CornerRadius="7"
|
||||
Background="{DynamicResource AppAccentSoftBackgroundBrush}"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding Icon}" FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource AppAccentOnSoftBrush}"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<StackPanel Grid.Column="1" Margin="10,0">
|
||||
<TextBlock Text="{Binding Title}" FontSize="14" FontWeight="SemiBold"/>
|
||||
<TextBlock Text="{Binding Subtitle}" FontSize="11" Opacity="0.6"
|
||||
TextTrimming="CharacterEllipsis"/>
|
||||
</StackPanel>
|
||||
<Border Grid.Column="2" Padding="7,3" CornerRadius="8"
|
||||
Background="{DynamicResource AppChipBackgroundBrush}"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding KindLabel}" FontSize="10" Opacity="0.7"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<TextBlock Grid.Row="2" Text="Keine passenden Ergebnisse."
|
||||
Classes="emptyhint" HorizontalAlignment="Center" Margin="20"
|
||||
IsVisible="{Binding CommandPalette.ShowNoResults}"/>
|
||||
<Grid Grid.Row="3" ColumnDefinitions="*,Auto" Margin="18,8,18,14">
|
||||
<TextBlock Text="↑↓ auswählen · Enter öffnen · Esc schließen" FontSize="10" Opacity="0.5"/>
|
||||
<TextBlock Grid.Column="1" Text="Strg/⌘ + K" FontSize="10" Opacity="0.5"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Dauerhafte Meldung bei einer echten Protokoll-Inkompatibilität. Als Overlay außerhalb
|
||||
von DrawerPage.Content bleibt der DataContext das MainWindowViewModel; innerhalb des
|
||||
ContentPresenters würde eine fehlgeschlagene Bindung IsVisible auf true stehen lassen. -->
|
||||
|
||||
Reference in New Issue
Block a user