Skip to content
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.

Commit

Permalink
修复全屏/全窗口切换时的问题 (#342)
Browse files Browse the repository at this point in the history
  • Loading branch information
Richasy authored Sep 29, 2021
1 parent c615f95 commit f840bfa
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 78 deletions.
10 changes: 8 additions & 2 deletions src/App/Controls/Player/PlayerDashboard.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,10 @@
Margin="0,0,0,8"
HorizontalAlignment="Stretch"
Click="OnShareButtonClick">
<local:IconTextBlock Symbol="Share16" Text="{loc:LocaleLocator Name=Share}" />
<local:IconTextBlock
Foreground="{ThemeResource TextFillColorPrimaryBrush}"
Symbol="Share16"
Text="{loc:LocaleLocator Name=Share}" />
</Button>

<Button
Expand All @@ -213,7 +216,10 @@
Margin="0,0,0,8"
HorizontalAlignment="Stretch"
Visibility="{x:Bind ViewModel.IsLive, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<local:IconTextBlock Symbol="ArrowDownload16" Text="{loc:LocaleLocator Name=Download}" />
<local:IconTextBlock
Foreground="{ThemeResource TextFillColorPrimaryBrush}"
Symbol="ArrowDownload16"
Text="{loc:LocaleLocator Name=Download}" />
<Button.Flyout>
<Flyout>
<local:DownloadOptionsPanel />
Expand Down
147 changes: 74 additions & 73 deletions src/App/Pages/Overlay/PlayerPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,91 +65,92 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid x:Name="ContentContainer" Padding="{StaticResource DefaultPagePadding}">
<Grid
x:Name="ContentGrid"
Margin="{StaticResource DefaultContainerWithBottomPadding}"
x:Load="False"
ColumnSpacing="48"
Visibility="{x:Bind ViewModel.IsDetailError, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<Grid.RowDefinitions>
<RowDefinition x:Name="PlayerRow" Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition x:Name="RelatedRow" Width="Auto" />
</Grid.ColumnDefinitions>
<Grid x:Name="PlayerContainer" Visibility="{x:Bind ViewModel.IsDetailLoading, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<controls:BiliPlayer x:Name="BiliPlayer" Visibility="{x:Bind ViewModel.IsPlayInformationError, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}" />
<Grid
x:Name="PlayErrorContainer"
MinHeight="200"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{ThemeResource LayerFillColorDefaultBrush}"
CornerRadius="{StaticResource OverlayCornerRadius}"
Visibility="{x:Bind ViewModel.IsPlayInformationError, Mode=OneWay}">
<StackPanel
Padding="20,12"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}"
CornerRadius="{StaticResource OverlayCornerRadius}"
Spacing="8">
<Image
Width="120"
HorizontalAlignment="Center"
Source="ms-appx:///Assets/ERROR_rgba.png"
Stretch="Uniform" />
<TextBlock
HorizontalAlignment="Center"
Text="{x:Bind ViewModel.PlayInformationErrorText, Mode=OneWay}"
TextAlignment="Center" />
<Button
x:Name="RefreshButton"
HorizontalAlignment="Center"
Click="OnRefreshButtonClickAsync"
Content="{loc:LocaleLocator Name=Refresh}" />
</StackPanel>
</Grid>
</Grid>

<Grid x:Name="LoadContainer" x:Load="{x:Bind ViewModel.IsDetailCanLoaded, Mode=OneWay}">
<Grid
x:Name="InformationContainer"
Grid.Row="1"
Margin="0,24,0,0"
ColumnSpacing="20"
Visibility="{x:Bind ViewModel.IsDetailLoading, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
x:Name="ContentGrid"
Margin="{StaticResource DefaultContainerWithBottomPadding}"
ColumnSpacing="48"
Visibility="{x:Bind ViewModel.IsDetailError, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<Grid.RowDefinitions>
<RowDefinition x:Name="PlayerRow" Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition x:Name="RelatedRow" Width="Auto" />
</Grid.ColumnDefinitions>
<controls:PlayerDescriptor />
<controls:PlayerDashboard
x:Name="Dashboard"
<Grid x:Name="PlayerContainer" Visibility="{x:Bind ViewModel.IsDetailLoading, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<controls:BiliPlayer x:Name="BiliPlayer" Visibility="{x:Bind ViewModel.IsPlayInformationError, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}" />
<Grid
x:Name="PlayErrorContainer"
MinHeight="200"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{ThemeResource LayerFillColorDefaultBrush}"
CornerRadius="{StaticResource OverlayCornerRadius}"
Visibility="{x:Bind ViewModel.IsPlayInformationError, Mode=OneWay}">
<StackPanel
Padding="20,12"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}"
CornerRadius="{StaticResource OverlayCornerRadius}"
Spacing="8">
<Image
Width="120"
HorizontalAlignment="Center"
Source="ms-appx:///Assets/ERROR_rgba.png"
Stretch="Uniform" />
<TextBlock
HorizontalAlignment="Center"
Text="{x:Bind ViewModel.PlayInformationErrorText, Mode=OneWay}"
TextAlignment="Center" />
<Button
x:Name="RefreshButton"
HorizontalAlignment="Center"
Click="OnRefreshButtonClickAsync"
Content="{loc:LocaleLocator Name=Refresh}" />
</StackPanel>
</Grid>
</Grid>

<Grid
x:Name="InformationContainer"
Grid.Row="1"
Margin="0,24,0,0"
ColumnSpacing="20"
Visibility="{x:Bind ViewModel.IsDetailLoading, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<controls:PlayerDescriptor />
<controls:PlayerDashboard
x:Name="Dashboard"
Grid.Column="1"
VerticalAlignment="Top" />
</Grid>
<Grid
x:Name="RelatedContainer"
Grid.RowSpan="3"
Grid.Column="1"
VerticalAlignment="Top" />
</Grid>
<Grid
x:Name="RelatedContainer"
Grid.RowSpan="3"
Grid.Column="1"
Visibility="{x:Bind ViewModel.IsDetailLoading, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<controls:PlayerRelatedView />
Visibility="{x:Bind ViewModel.IsDetailLoading, Mode=OneWay, Converter={StaticResource BoolToVisibilityReverseConverter}}">
<controls:PlayerRelatedView />
</Grid>
</Grid>
</Grid>

<ScrollViewer
x:Name="RootScrollViewer"
HorizontalScrollMode="Disabled"
VerticalScrollBarVisibility="Auto"
Visibility="Collapsed" />
<ScrollViewer
x:Name="RootScrollViewer"
HorizontalScrollMode="Disabled"
VerticalScrollBarVisibility="Auto"
Visibility="Collapsed" />

</Grid>

<controls:ErrorPanel
x:Name="ErrorPanel"
Expand Down
13 changes: 10 additions & 3 deletions src/App/Pages/Overlay/PlayerPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,6 @@ private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs
case nameof(ViewModel.PlayerDisplayMode):
CheckPlayerDisplayModeAsync();
break;
case nameof(ViewModel.IsDetailCanLoaded):
FindName("ContentGrid");
break;
default:
break;
}
Expand All @@ -109,6 +106,11 @@ private void OnUnloaded(object sender, RoutedEventArgs e)

private void OnSizeChanged(object sender, SizeChangedEventArgs e)
{
if (!ViewModel.IsDetailCanLoaded)
{
return;
}

if (e.NewSize.Width < AppViewModel.Instance.MediumWindowThresholdWidth)
{
if (ContentContainer.Children.Contains(ContentGrid))
Expand Down Expand Up @@ -175,6 +177,11 @@ private async void CheckPlayerDisplayModeAsync()
}
else if (ViewModel.PlayerDisplayMode == PlayerDisplayMode.FullWindow)
{
if (appView.IsFullScreenMode)
{
appView.ExitFullScreenMode();
}

VisualStateManager.GoToState(this, nameof(FullPlayerState), false);
}
else if (ViewModel.PlayerDisplayMode == PlayerDisplayMode.CompactOverlay)
Expand Down

0 comments on commit f840bfa

Please sign in to comment.