Skip to content

Commit df95195

Browse files
committed
Fix | 修复标题栏初始化的bug
1 parent 8ab8756 commit df95195

7 files changed

+258
-189
lines changed

ShadowViewer/MainWindow.xaml

+2-144
Original file line numberDiff line numberDiff line change
@@ -18,154 +18,12 @@
1818
<Grid>
1919
<Grid
2020
x:Name="MainGrid"
21-
MinWidth="650"
22-
Visibility="Collapsed">
21+
MinWidth="650">
2322
<Grid.RowDefinitions>
2423
<RowDefinition Height="Auto" />
2524
<RowDefinition Height="*" />
2625
</Grid.RowDefinitions>
27-
<controls:TitleBar
28-
x:Name="AppTitleBar"
29-
Title="ShadowViewer"
30-
Grid.Row="0"
31-
VerticalAlignment="Top"
32-
AutoConfigureCustomTitleBar="True"
33-
DisplayMode="Tall"
34-
IsBackButtonVisible="False"
35-
IsHistoryButtonVisible="False"
36-
IsPaneButtonVisible="False"
37-
Subtitle="{x:Bind ViewModel.SubTitle, Mode=OneWay}"
38-
SubtitleForeground="Goldenrod"
39-
Window="{x:Bind ThisWindow}">
40-
<controls:TitleBar.Icon>
41-
<BitmapIcon ShowAsMonochrome="False" UriSource="ms-appx:///Assets/AppTitleBarIcon.png" />
42-
</controls:TitleBar.Icon>
43-
<controls:TitleBar.Content>
44-
<AutoSuggestBox
45-
x:Name="SuggestBox"
46-
GotFocus="{x:Bind ViewModel.AutoSuggestBox_OnGotFocus}"
47-
ItemsSource="{x:Bind ViewModel.SearchItems, Mode=OneWay}"
48-
LostFocus="{x:Bind ViewModel.AutoSuggestBox_OnLostFocus}"
49-
PlaceholderText="{i18N:Locale Key=Search}"
50-
QuerySubmitted="{x:Bind ViewModel.AutoSuggestBox_OnQuerySubmitted}"
51-
SuggestionChosen="{x:Bind ViewModel.AutoSuggestBox_OnSuggestionChosen}"
52-
TextChanged="{x:Bind ViewModel.AutoSuggestBox_OnTextChanged}"
53-
TextMemberPath="Title"
54-
UpdateTextOnSelect="False"
55-
Visibility="Collapsed">
56-
<AutoSuggestBox.ItemTemplate>
57-
<DataTemplate x:DataType="interfaces:IShadowSearchItem">
58-
<Grid ColumnSpacing="5">
59-
<Grid.ColumnDefinitions>
60-
<ColumnDefinition Width="Auto" />
61-
<ColumnDefinition Width="*" />
62-
<ColumnDefinition Width="Auto" />
63-
<ColumnDefinition Width="Auto" />
64-
</Grid.ColumnDefinitions>
65-
<IconSourceElement Grid.Column="0" IconSource="{x:Bind Icon}" />
66-
<TextBlock Grid.Column="1" Text="{x:Bind Title}" />
67-
<TextBlock
68-
Grid.Column="2"
69-
FontSize="13"
70-
Text="{x:Bind SubTitle}" />
71-
<TextBlock
72-
Grid.Column="3"
73-
VerticalAlignment="Center"
74-
FontSize="12"
75-
Foreground="Gray"
76-
Text="{x:Bind Id}" />
77-
</Grid>
78-
</DataTemplate>
79-
</AutoSuggestBox.ItemTemplate>
80-
</AutoSuggestBox>
81-
</controls:TitleBar.Content>
82-
<controls:TitleBar.HistoryFlyout>
83-
<Flyout Opening="HistoryFlyout_OnOpening" Placement="BottomEdgeAlignedRight">
84-
<Grid Width="300" RowSpacing="10">
85-
<Grid.RowDefinitions>
86-
<RowDefinition Height="Auto" />
87-
<RowDefinition Height="*" />
88-
</Grid.RowDefinitions>
89-
<Grid Grid.Row="0">
90-
<Grid.ColumnDefinitions>
91-
<ColumnDefinition Width="*" />
92-
<ColumnDefinition Width="Auto" />
93-
</Grid.ColumnDefinitions>
94-
<Button
95-
Grid.Column="0"
96-
HorizontalAlignment="Left"
97-
Content="{i18N:Locale Key=History}"
98-
FontSize="18"
99-
Style="{ThemeResource PointerOverButtonStyle}" />
100-
101-
</Grid>
102-
<ListView
103-
x:Name="HistoryListView"
104-
Grid.Row="1"
105-
MaxHeight="400"
106-
IsItemClickEnabled="True"
107-
ItemClick="{x:Bind ViewModel.HistoryView_OnItemClick}"
108-
ItemsSource="{x:Bind ViewModel.HistoryCollection, Mode=OneWay}"
109-
SelectionMode="None">
110-
<ListView.ItemTemplate>
111-
<DataTemplate x:DataType="interfaces:IHistory">
112-
<Grid Padding="3" ColumnSpacing="10">
113-
<Grid.ColumnDefinitions>
114-
<ColumnDefinition Width="60" />
115-
<ColumnDefinition Width="*" />
116-
<ColumnDefinition Width="40" />
117-
</Grid.ColumnDefinitions>
118-
<Image Height="80" Grid.Column="0" Source="{x:Bind Thumb}" />
119-
<Grid Grid.Column="1">
120-
<Grid.RowDefinitions>
121-
<RowDefinition Height="*" />
122-
<RowDefinition Height="Auto" />
123-
</Grid.RowDefinitions>
124-
<TextBlock
125-
Grid.Row="0"
126-
MaxLines="2"
127-
Text="{x:Bind Title}"
128-
TextTrimming="CharacterEllipsis"
129-
TextWrapping="Wrap" />
130-
<Grid Grid.Row="1" ColumnSpacing="10">
131-
<Grid.ColumnDefinitions>
132-
<ColumnDefinition Width="Auto" />
133-
<ColumnDefinition Width="*" />
134-
</Grid.ColumnDefinitions>
135-
<TextBlock
136-
Grid.Column="0"
137-
FontSize="12"
138-
Foreground="Gray"
139-
Text="{x:Bind LastReadDateTime}" />
140-
<TextBlock
141-
Grid.Column="1"
142-
FontSize="12"
143-
Foreground="Gray"
144-
Text="{x:Bind PluginId}"
145-
TextTrimming="CharacterEllipsis" />
146-
</Grid>
147-
</Grid>
148-
<Button
149-
Grid.Column="2"
150-
Width="30"
151-
Height="28"
152-
Padding="6,4"
153-
HorizontalAlignment="Center"
154-
VerticalAlignment="Center"
155-
Command="{Binding ElementName=ThisWindow, Path=ViewModel.HistoryDeleteCommand}"
156-
CommandParameter="{x:Bind}"
157-
Style="{ThemeResource PointerOverButtonStyle}">
158-
<FontIcon FontSize="12" Glyph="&#xE711;" />
159-
</Button>
160-
</Grid>
161-
</DataTemplate>
162-
</ListView.ItemTemplate>
163-
</ListView>
164-
</Grid>
165-
</Flyout>
166-
</controls:TitleBar.HistoryFlyout>
167-
</controls:TitleBar>
168-
<!-- <pages:NavigationPage x:Name="MainPage" Grid.Row="1" /> -->
26+
16927
</Grid>
17028
<Grid
17129
x:Name="LoadingGrid"

ShadowViewer/MainWindow.xaml.cs

+9-30
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Collections.ObjectModel;
32
using System.Diagnostics;
43
using ShadowViewer.Core.Services;
54
using DryIoc;
@@ -16,23 +15,19 @@
1615
using ShadowViewer.Services;
1716
using SqlSugar;
1817
using System.Globalization;
19-
using System.Numerics;
2018
using System.Threading.Tasks;
2119
using Microsoft.UI.Xaml.Controls;
2220
using ShadowViewer.Pages;
23-
using CommunityToolkit.WinUI.Animations;
2421
using CustomExtensions.WinUI;
2522
using Microsoft.UI.Windowing;
26-
using ShadowViewer.Core.Models.Interfaces;
2723
using ShadowViewer.Helpers;
28-
using ShadowViewer.Plugin.Local.Models;
2924

3025
namespace ShadowViewer;
3126

3227
public sealed partial class MainWindow : Window
3328
{
34-
public MainViewModel ViewModel { get; } = new();
3529
private NavigationPage? navigationPage;
30+
private ShadowTitleBar? shadowTitleBar;
3631
private readonly Uri? firstUri;
3732

3833
public MainWindow()
@@ -47,10 +42,6 @@ public MainWindow(Uri firstUri) : this()
4742
this.firstUri = firstUri;
4843
}
4944

50-
private void AppTitleBar_ThemeChangedEvent(object? sender, EventArgs e)
51-
{
52-
AppTitleBar.InvokeThemeChanged(this);
53-
}
5445

5546
private async void Content_Loaded(object sender, RoutedEventArgs e)
5647
{
@@ -66,32 +57,27 @@ private async void Content_Loaded(object sender, RoutedEventArgs e)
6657
#endif
6758
LoadingText.Text = "加载标题栏...";
6859
var caller = DiFactory.Services.Resolve<ICallableService>();
69-
ViewModel.PluginService = DiFactory.Services.Resolve<PluginLoader>();
70-
caller.ThemeChangedEvent -= AppTitleBar_ThemeChangedEvent;
71-
caller.ThemeChangedEvent += AppTitleBar_ThemeChangedEvent;
7260
navigationPage = new NavigationPage();
61+
shadowTitleBar = new ShadowTitleBar(this);
62+
MainGrid.Children.Add(shadowTitleBar);
7363
Grid.SetRow(navigationPage, 1);
7464
MainGrid.Children.Add(navigationPage);
75-
AppTitleBar.IsBackButtonVisible = true;
76-
AppTitleBar.IsPaneButtonVisible = true;
77-
AppTitleBar.IsHistoryButtonVisible = true;
78-
AppTitleBar.PaneButtonClick += navigationPage.AppTitleBar_OnPaneButtonClick;
79-
AppTitleBar.BackButtonClick += navigationPage.AppTitleBar_BackButtonClick;
65+
shadowTitleBar.InitAppTitleBar_BackButtonClick(navigationPage.AppTitleBar_BackButtonClick);
66+
shadowTitleBar.InitAppTitleBar_OnPaneButtonClick(navigationPage.AppTitleBar_OnPaneButtonClick);
67+
caller.ThemeChangedEvent += shadowTitleBar.AppTitleBar_ThemeChangedEvent;
68+
caller.DebugEvent += shadowTitleBar.AppTitleBar_DebugEvent;
8069
// await OutAnimationLoadingGrid.StartAsync();
8170
LoadingGrid.Visibility = Visibility.Collapsed;
8271
MainGrid.Visibility = Visibility.Visible;
83-
SuggestBox.Visibility = Visibility.Visible;
8472
if (firstUri != null) NavigateHelper.ShadowNavigate(firstUri);
8573
}
8674

8775

8876
private async Task OnLoading(IProgress<string>? loadingProgress)
8977
{
90-
// await Task.Delay(5000);
9178
loadingProgress?.Report("初始化插件加载器...");
9279
ApplicationExtensionHost.Initialize(Application.Current);
9380
// await Task.Delay(5000); // 测试用
94-
Debug.WriteLine("123123");
9581
// 配置文件
9682
loadingProgress?.Report("加载配置文件与数据库...");
9783
CoreSettings.Init();
@@ -129,6 +115,7 @@ private static void InitDi()
129115

130116
DiFactory.Services.Register<SettingsViewModel>(reuse: Reuse.Singleton);
131117
DiFactory.Services.Register<NavigationViewModel>(reuse: Reuse.Singleton);
118+
DiFactory.Services.Register<TitleBarViewModel>(reuse: Reuse.Singleton);
132119
}
133120

134121
/// <summary>
@@ -139,16 +126,8 @@ private static void InitDatabase()
139126
SnowFlakeSingle.WorkId = 4;
140127
var db = DiFactory.Services.Resolve<ISqlSugarClient>();
141128
db.DbMaintenance.CreateDatabase();
142-
db.CodeFirst.InitTables<LocalEpisode>();
143-
db.CodeFirst.InitTables<LocalPicture>();
144129
db.CodeFirst.InitTables<LocalTag>();
145130
db.CodeFirst.InitTables<CacheZip>();
146131
}
147-
/// <summary>
148-
/// 历史记录显示
149-
/// </summary>
150-
public void HistoryFlyout_OnOpening(object? sender, object e)
151-
{
152-
ViewModel.ReLoadHistory();
153-
}
132+
154133
}

0 commit comments

Comments
 (0)