feat: add seating plan drag and quick assessment
This commit is contained in:
@@ -3,6 +3,21 @@
|
||||
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Groups"
|
||||
x:Class="LehrerApp.Desktop.Views.Groups.SeatingPlanTabView"
|
||||
x:DataType="vm:SeatingPlanTabViewModel">
|
||||
<UserControl.Styles>
|
||||
<Style Selector="Border.seat">
|
||||
<Setter Property="Background" Value="{DynamicResource SystemControlBackgroundAltHighBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource SystemControlForegroundBaseLowBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
</Style>
|
||||
<Style Selector="Border.seat.occupied">
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource SystemAccentColor}"/>
|
||||
</Style>
|
||||
<Style Selector="Border.seat.droptarget">
|
||||
<Setter Property="Background" Value="{DynamicResource SystemAccentColorLight2}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource SystemAccentColor}"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
</Style>
|
||||
</UserControl.Styles>
|
||||
<Grid ColumnDefinitions="260,*">
|
||||
<Border Grid.Column="0" BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||||
BorderThickness="0,0,1,0" Padding="16">
|
||||
@@ -51,8 +66,11 @@
|
||||
<TextBlock Text="{Binding PlanTitle}" FontSize="22" FontWeight="SemiBold"/>
|
||||
<TextBlock Text="{Binding PlanSubtitle}" Opacity="0.65"/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="1" Text="{Binding AssignmentSummary}" VerticalAlignment="Bottom"
|
||||
FontSize="12" Opacity="0.6"/>
|
||||
<StackPanel Grid.Column="1" VerticalAlignment="Bottom">
|
||||
<TextBlock Text="{Binding AssignmentSummary}" HorizontalAlignment="Right" FontSize="12" Opacity="0.6"/>
|
||||
<TextBlock Text="Ziehen: Platz ändern · Klicken: bewerten" HorizontalAlignment="Right"
|
||||
FontSize="11" Opacity="0.5"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto"
|
||||
@@ -70,24 +88,60 @@
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:SeatCellViewModel">
|
||||
<Border Width="190" MinHeight="76" Margin="5" Padding="10"
|
||||
BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||||
BorderThickness="1" CornerRadius="7">
|
||||
<Border Classes="seat" Classes.occupied="{Binding IsOccupied}"
|
||||
Classes.droptarget="{Binding IsDropTarget}"
|
||||
Width="190" MinHeight="76" Margin="5" Padding="10"
|
||||
CornerRadius="7"
|
||||
DragDrop.AllowDrop="True"
|
||||
DragDrop.DragEnter="OnSeatDragEnter"
|
||||
DragDrop.DragLeave="OnSeatDragLeave"
|
||||
DragDrop.DragOver="OnSeatDragOver"
|
||||
DragDrop.Drop="OnSeatDrop"
|
||||
PointerPressed="OnDragSourcePressed"
|
||||
PointerMoved="OnDragSourceMoved"
|
||||
PointerReleased="OnDragSourceReleased"
|
||||
Tapped="OnSeatTapped">
|
||||
<StackPanel Spacing="5">
|
||||
<TextBlock Text="{Binding PositionLabel}" FontSize="10" Opacity="0.5"/>
|
||||
<ComboBox ItemsSource="{Binding Options}" SelectedItem="{Binding SelectedOption}"
|
||||
IsEnabled="{Binding CanEdit}" HorizontalAlignment="Stretch">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:StudentSeatOption">
|
||||
<TextBlock Text="{Binding DisplayName}"/>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
<Grid ColumnDefinitions="*,Auto">
|
||||
<TextBlock Text="{Binding PositionLabel}" FontSize="10" Opacity="0.5"/>
|
||||
<TextBlock Grid.Column="1" Text="⠿" Opacity="0.45" IsVisible="{Binding IsOccupied}"/>
|
||||
</Grid>
|
||||
<TextBlock Text="{Binding StudentName}" FontWeight="SemiBold" FontSize="13"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Border DragDrop.AllowDrop="True" DragDrop.DragOver="OnUnassignedDragOver"
|
||||
DragDrop.Drop="OnUnassignedDrop"
|
||||
BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||||
BorderThickness="1" CornerRadius="7" Padding="12" Margin="5,8">
|
||||
<StackPanel Spacing="8">
|
||||
<TextBlock Text="NICHT ZUGEORDNET" FontSize="10" FontWeight="Bold" Opacity="0.5"/>
|
||||
<TextBlock Text="Schüler hierher ziehen, um einen Platz zu leeren."
|
||||
FontSize="11" Opacity="0.5"/>
|
||||
<ItemsControl ItemsSource="{Binding UnassignedStudents}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate><WrapPanel/></ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:StudentSeatOption">
|
||||
<Border Background="{DynamicResource SystemAccentColorLight2}" CornerRadius="5"
|
||||
Padding="9,5" Margin="0,0,6,6"
|
||||
PointerPressed="OnDragSourcePressed"
|
||||
PointerMoved="OnDragSourceMoved"
|
||||
PointerReleased="OnDragSourceReleased">
|
||||
<TextBlock Text="{Binding DisplayName}" FontSize="12"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<TextBlock Text="Alle Schüler sind zugeordnet." Classes="emptyhint"
|
||||
IsVisible="{Binding !UnassignedStudents.Count}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
Reference in New Issue
Block a user