chores: improve layout

This commit is contained in:
Zhe Fang
2025-12-02 15:10:18 -05:00
parent 81ed341e47
commit 4cb1ca0bb3
2 changed files with 42 additions and 34 deletions

View File

@@ -29,7 +29,7 @@
<!-- Win2D drawing area --> <!-- Win2D drawing area -->
<uc:LyricsCanvas x:Name="LyricsCanvas" /> <uc:LyricsCanvas x:Name="LyricsCanvas" />
<Grid x:Name="TrackSummaryGridContainer" Loaded="TrackSummaryGridContainer_Loaded"> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition x:Name="TrackSummaryRowDef" Height="0" /> <RowDefinition x:Name="TrackSummaryRowDef" Height="0" />
<RowDefinition x:Name="MiddleGapRowDef" Height="0" /> <RowDefinition x:Name="MiddleGapRowDef" Height="0" />
@@ -149,7 +149,7 @@
<TextBlock <TextBlock
x:Name="ArtistsTextBlock" x:Name="ArtistsTextBlock"
FontWeight="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.LyricsStyleSettings.LyricsFontWeight, Converter={StaticResource LyricsFontWeightToFontWeightConverter}, Mode=OneWay}" FontWeight="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.LyricsStyleSettings.LyricsFontWeight, Converter={StaticResource LyricsFontWeightToFontWeightConverter}, Mode=OneWay}"
Opacity="0.5" Opacity="0.6"
TextTrimming="None" TextTrimming="None"
Visibility="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.AlbumArtLayoutSettings.ShowArtists, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" /> Visibility="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.AlbumArtLayoutSettings.ShowArtists, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
</dev:AutoScrollView> </dev:AutoScrollView>
@@ -174,7 +174,7 @@
<TextBlock <TextBlock
x:Name="AlbumTextBlock" x:Name="AlbumTextBlock"
FontWeight="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.LyricsStyleSettings.LyricsFontWeight, Converter={StaticResource LyricsFontWeightToFontWeightConverter}, Mode=OneWay}" FontWeight="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.LyricsStyleSettings.LyricsFontWeight, Converter={StaticResource LyricsFontWeightToFontWeightConverter}, Mode=OneWay}"
Opacity="0.5" Opacity="0.3"
TextTrimming="None" TextTrimming="None"
Visibility="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.AlbumArtLayoutSettings.ShowAlbum, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" /> Visibility="{x:Bind ViewModel.LiveStates.LyricsWindowStatus.AlbumArtLayoutSettings.ShowAlbum, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
</dev:AutoScrollView> </dev:AutoScrollView>
@@ -187,8 +187,8 @@
<Grid x:Name="LyricsPlaceholder" SizeChanged="LyricsPlaceholder_SizeChanged"> <Grid x:Name="LyricsPlaceholder" SizeChanged="LyricsPlaceholder_SizeChanged">
<ScrollViewer <ScrollViewer
x:Name="LyricsScrollViewer" x:Name="LyricsScrollViewer"
PointerExited="LyricsScrollViewer_PointerExited"
PointerEntered="LyricsScrollViewer_PointerEntered" PointerEntered="LyricsScrollViewer_PointerEntered"
PointerExited="LyricsScrollViewer_PointerExited"
PointerMoved="LyricsScrollViewer_PointerMoved" PointerMoved="LyricsScrollViewer_PointerMoved"
PointerPressed="LyricsScrollViewer_PointerPressed" PointerPressed="LyricsScrollViewer_PointerPressed"
PointerReleased="LyricsScrollViewer_PointerReleased" PointerReleased="LyricsScrollViewer_PointerReleased"

View File

@@ -203,7 +203,7 @@ namespace BetterLyrics.WinUI3.Views
Grid.SetRow(SongInfoStackPanel, 3); Grid.SetRow(SongInfoStackPanel, 3);
Grid.SetRowSpan(SongInfoStackPanel, 1); Grid.SetRowSpan(SongInfoStackPanel, 1);
Grid.SetColumn(SongInfoStackPanel, 0); Grid.SetColumn(SongInfoStackPanel, 0);
Grid.SetColumnSpan(SongInfoStackPanel, 3); Grid.SetColumnSpan(SongInfoStackPanel, 2);
break; break;
case LyricsLayoutOrientation.Vertical: case LyricsLayoutOrientation.Vertical:
Grid.SetRow(SongInfoStackPanel, 1); Grid.SetRow(SongInfoStackPanel, 1);
@@ -264,7 +264,7 @@ namespace BetterLyrics.WinUI3.Views
Grid.SetRow(AlbumArtGrid, 1); Grid.SetRow(AlbumArtGrid, 1);
Grid.SetRowSpan(AlbumArtGrid, 1); Grid.SetRowSpan(AlbumArtGrid, 1);
Grid.SetColumn(AlbumArtGrid, 0); Grid.SetColumn(AlbumArtGrid, 0);
Grid.SetColumnSpan(AlbumArtGrid, 3); Grid.SetColumnSpan(AlbumArtGrid, 2);
break; break;
case LyricsLayoutOrientation.Vertical: case LyricsLayoutOrientation.Vertical:
Grid.SetRow(AlbumArtGrid, 1); Grid.SetRow(AlbumArtGrid, 1);
@@ -343,20 +343,48 @@ namespace BetterLyrics.WinUI3.Views
double height = RootGrid.ActualHeight; double height = RootGrid.ActualHeight;
double width = RootGrid.ActualWidth; double width = RootGrid.ActualWidth;
double middleGapCol = 0; double minSize = Math.Min(width, height);
double gapBetweenTrackSummaryAndLyrics = 0;
double gapBetweenAlbumArtAndSongInfo = 0; double gapBetweenAlbumArtAndSongInfo = 0;
double trackSummaryRowHeight = 0; double trackSummaryRowHeight = 0;
double xMargin = 0; double xMargin = 0;
double yMargin = 0; double yMargin = 0;
if (height < 400) switch (status.LyricsLayoutOrientation)
{ {
middleGapCol = Math.Max(16, height * 0.1); case LyricsLayoutOrientation.Horizontal:
} if (width < 800)
else {
{ xMargin = Math.Clamp(minSize * 0.15, 16, 128);
middleGapCol = Math.Max(16, width * 0.15); }
else
{
xMargin = Math.Clamp(minSize * 0.25, 16, 128);
}
yMargin = Math.Max(32, Math.Min(width, height) * 0.15);
if (height < 100)
{
gapBetweenTrackSummaryAndLyrics = Math.Max(16, height * 0.1);
}
else
{
gapBetweenTrackSummaryAndLyrics = 0;
}
TrackSummaryGridCol0.Width = new(1, GridUnitType.Star);
TrackSummaryGridCol2.Width = new(xMargin);
break;
case LyricsLayoutOrientation.Vertical:
xMargin = Math.Max(16, minSize * 0.05);
yMargin = Math.Max(16, minSize * 0.05);
trackSummaryRowHeight = Math.Max(64, minSize * 0.25);
gapBetweenTrackSummaryAndLyrics = Math.Max(16, width * 0.15);
TrackSummaryGridCol0.Width = new(1, GridUnitType.Auto);
TrackSummaryGridCol2.Width = new(1, GridUnitType.Star);
break;
default:
break;
} }
if (height < 100) if (height < 100)
@@ -368,22 +396,7 @@ namespace BetterLyrics.WinUI3.Views
gapBetweenAlbumArtAndSongInfo = lyricsLayoutMetrics.SongTitleSize / 2; gapBetweenAlbumArtAndSongInfo = lyricsLayoutMetrics.SongTitleSize / 2;
} }
switch (status.LyricsLayoutOrientation) MiddleGapColDef.Width = new(gapBetweenTrackSummaryAndLyrics);
{
case LyricsLayoutOrientation.Horizontal:
xMargin = Math.Clamp(Math.Min(width, height) * 0.25, 16, 128);
yMargin = Math.Max(32, Math.Min(width, height) * 0.15);
break;
case LyricsLayoutOrientation.Vertical:
xMargin = Math.Max(16, Math.Min(width, height) * 0.05);
yMargin = Math.Max(16, Math.Min(width, height) * 0.05);
trackSummaryRowHeight = Math.Max(64, height * 0.25);
break;
default:
break;
}
MiddleGapColDef.Width = new(middleGapCol);
TrackSummaryGridRow0.Height = new(yMargin); TrackSummaryGridRow0.Height = new(yMargin);
TrackSummaryGridRow4.Height = new(yMargin); TrackSummaryGridRow4.Height = new(yMargin);
@@ -644,11 +657,6 @@ namespace BetterLyrics.WinUI3.Views
OnLayoutChanged(); OnLayoutChanged();
} }
private void TrackSummaryGridContainer_Loaded(object sender, RoutedEventArgs e)
{
OnLayoutChanged();
}
private void ShadowCastGrid_SizeChanged(object sender, SizeChangedEventArgs e) private void ShadowCastGrid_SizeChanged(object sender, SizeChangedEventArgs e)
{ {
UpdateAlbumArtCornerRadius(); UpdateAlbumArtCornerRadius();