- LeftPanel: SCENE LAYERS header with layer count; per-type blue icons; properties header gear; layers list min/max height; properties placeholder; list and properties indent - SceneThumbnailStrip: names/hotkeys over the tile; PROGRAM badge with blinking red dot on the selected tile; orange border on selected and live tiles; fixed the element border override that hid the style border; reflag tiles on load - LiveScene is now set on go-live, record start, and live transitions (it was never assigned, so IsLive never fired) - Startup stages the scene named Starting - DESIGN.md: color roles (red = YouTube/on-air/record, orange #ff8c3a = attention, amber = game audio/Super Chat) - Staged live tile uses background art instead of the green LIVE placeholder Not pushed.
88 lines
5.3 KiB
XML
88 lines
5.3 KiB
XML
<UserControl x:Class="ytLive.Controls.SceneThumbnailStrip"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
<Viewbox Stretch="Uniform">
|
|
<Border Width="1000" Height="150" Background="#0d1117" CornerRadius="4" Margin="0,0,0,4" Padding="4">
|
|
<ItemsControl ItemsSource="{Binding Scenes}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<UniformGrid Rows="1" Columns="5"/>
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Border CornerRadius="4" Margin="2" Padding="2"
|
|
BorderThickness="2"
|
|
Cursor="Hand"
|
|
MouseLeftButtonDown="Thumbnail_MouseLeftButtonDown">
|
|
<Border.Style>
|
|
<Style TargetType="Border">
|
|
<Setter Property="BorderBrush" Value="#333344"/>
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsStaged}" Value="True">
|
|
<Setter Property="BorderBrush" Value="#ff8c3a"/>
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding IsLive}" Value="True">
|
|
<Setter Property="BorderBrush" Value="#ff8c3a"/>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
<Grid>
|
|
<Border CornerRadius="3" Background="#0a0a1a" ClipToBounds="True">
|
|
<Image Source="{Binding Snapshot}"
|
|
Stretch="UniformToFill"
|
|
RenderOptions.BitmapScalingMode="LowQuality"/>
|
|
</Border>
|
|
|
|
<Border HorizontalAlignment="Left" VerticalAlignment="Top" Margin="6" Padding="8,3"
|
|
CornerRadius="3" Background="#ff8c3a">
|
|
<Border.Style>
|
|
<Style TargetType="Border">
|
|
<Setter Property="Visibility" Value="Collapsed"/>
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsStaged}" Value="True">
|
|
<Setter Property="Visibility" Value="Visible"/>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Ellipse Width="8" Height="8" Fill="#ff5451" VerticalAlignment="Center" Margin="0,0,5,0">
|
|
<Ellipse.Triggers>
|
|
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
|
|
<BeginStoryboard>
|
|
<Storyboard RepeatBehavior="Forever" AutoReverse="True">
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0.15" Duration="0:0:0.6"/>
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</EventTrigger>
|
|
</Ellipse.Triggers>
|
|
</Ellipse>
|
|
<TextBlock Text="PROGRAM" Foreground="White" FontSize="11" FontWeight="Bold" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<TextBlock Text="{Binding HotkeyLabel, Mode=OneWay}" Foreground="White" FontSize="16" FontWeight="SemiBold"
|
|
HorizontalAlignment="Right" VerticalAlignment="Top" Margin="6">
|
|
<TextBlock.Effect>
|
|
<DropShadowEffect BlurRadius="4" ShadowDepth="0" Opacity="0.9"/>
|
|
</TextBlock.Effect>
|
|
</TextBlock>
|
|
|
|
<TextBlock Text="{Binding Name, Mode=OneWay}" Foreground="White" FontSize="16" FontWeight="SemiBold"
|
|
HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="6"
|
|
TextTrimming="CharacterEllipsis">
|
|
<TextBlock.Effect>
|
|
<DropShadowEffect BlurRadius="4" ShadowDepth="0" Opacity="0.9"/>
|
|
</TextBlock.Effect>
|
|
</TextBlock>
|
|
</Grid>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Border>
|
|
</Viewbox>
|
|
</UserControl>
|