Skip to content

Commit 6ff9c8b

Browse files
committed
初步支持分屏
1 parent d55be06 commit 6ff9c8b

File tree

8 files changed

+61
-14
lines changed

8 files changed

+61
-14
lines changed

Controls/ToolBar.xaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@
99
mc:Ignorable="d">
1010

1111
<StackPanel Orientation="Horizontal">
12+
<Button
13+
x:Name="SplitButton"
14+
ToolTipService.ToolTip="分屏"
15+
Style="{StaticResource AlternateCloseButtonStyle}"
16+
Click="SplitWindow">
17+
<FontIcon Glyph="&#xe106;" />
18+
</Button>
19+
1220
<local:ToolButton
1321
x:Name="FavoriteButton"
1422
Title="收藏夹" PlaceholderText="搜索收藏夹"

Controls/ToolBar.xaml.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,5 +121,11 @@ public void ShowFlyout(string name)
121121
break;
122122
}
123123
}
124+
125+
private void SplitWindow(object sender, RoutedEventArgs e)
126+
{
127+
WebViewPage page = App.GetWindowForElement(this).SelectedItem as WebViewPage;
128+
page.CreateSplitWindow();
129+
}
124130
}
125131
}

Edge.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,10 @@
3939
</ItemGroup>
4040

4141
<ItemGroup>
42-
<PackageReference Include="CommunityToolkit.WinUI.Controls.SettingsControls" Version="8.2.241112-preview1" />
43-
<PackageReference Include="CommunityToolkit.WinUI.Converters" Version="8.2.241112-preview1" />
44-
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2957.106" />
42+
<PackageReference Include="CommunityToolkit.WinUI.Controls.SettingsControls" Version="8.2.250129-preview2" />
43+
<PackageReference Include="CommunityToolkit.WinUI.Controls.Sizers" Version="8.2.250129-preview2" />
44+
<PackageReference Include="CommunityToolkit.WinUI.Converters" Version="8.2.250129-preview2" />
45+
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.3079-prerelease" />
4546
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.162" />
4647
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.6.250108002" />
4748
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.1742" />

Pages/WebViewPage.xaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
xmlns:local="using:Edge"
77
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
88
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
9+
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
910
mc:Ignorable="d">
1011
<Grid>
1112

@@ -68,6 +69,28 @@
6869

6970
<WebView2 Name="EdgeWebViewEngine" CoreWebView2Initialized="WebView2Initialized" Grid.Row="2"/>
7071

72+
<Grid
73+
x:Name="splitGrid"
74+
Grid.Row="2"
75+
Visibility="Collapsed">
76+
<Grid.ColumnDefinitions>
77+
<ColumnDefinition />
78+
<ColumnDefinition />
79+
</Grid.ColumnDefinitions>
80+
81+
<WebView2 Source="https://www.bing.com/" Grid.Column="1" />
82+
<controls:GridSplitter
83+
Grid.Column="1"
84+
Width="16"
85+
HorizontalAlignment="Left"
86+
ResizeBehavior="BasedOnAlignment"
87+
ResizeDirection="Auto">
88+
<controls:GridSplitter.RenderTransform>
89+
<TranslateTransform X="-7" />
90+
</controls:GridSplitter.RenderTransform>
91+
</controls:GridSplitter>
92+
</Grid>
93+
7194
<Border
7295
Background="{ThemeResource LayerOnMicaBaseAltFillColorTertiaryBrush}" CornerRadius="{ThemeResource ControlCornerRadius}"
7396
MaxWidth="400" Height="24" Grid.Row="2"

Pages/WebViewPage.xaml.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,5 +353,17 @@ private void SetFavoriteIcon()
353353
favoriteButton.IconGlyph = "\ue734";
354354
}
355355
}
356+
357+
public void CreateSplitWindow()
358+
{
359+
EdgeWebViewEngine.Visibility = Visibility.Collapsed;
360+
WebView2 webView2 = new()
361+
{
362+
Source = EdgeWebViewEngine.Source
363+
};
364+
splitGrid.Children.Add(webView2);
365+
Grid.SetColumn(webView2, 0);
366+
splitGrid.Visibility = Visibility.Visible;
367+
}
356368
}
357369
}

Settings/AboutItem.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
Header="WebView2"
1515
Description="{x:Bind browserVersion}">
1616
<Button Name="CopyChromiumVersionButton"
17-
Click="TryCopyChromiumVersion"
17+
Click="CopyChromiumVersion"
1818
Content="复制"/>
1919
</controls:SettingsCard>
2020

@@ -25,7 +25,7 @@
2525
IsClickEnabled="True"
2626
IsActionIconVisible="False">
2727
<Button Name="CopyAppVersionButton"
28-
Click="TryCopyAppVersion"
28+
Click="CopyAppVersion"
2929
Content="复制"/>
3030
</controls:SettingsCard>
3131

Settings/AboutItem.xaml.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,30 +44,27 @@ private async void CheckUpdate(object sender, RoutedEventArgs e)
4444
catch (Exception) { }
4545
}
4646

47-
private void CopyText(string text)
47+
private static void CopyText(string text)
4848
{
49-
DataPackage package = new()
50-
{
51-
RequestedOperation = DataPackageOperation.Copy
52-
};
49+
DataPackage package = new();
5350
package.SetText(text);
5451
Clipboard.SetContent(package);
5552
}
5653

57-
private void TryCopyChromiumVersion(object sender, RoutedEventArgs e)
54+
private void CopyChromiumVersion(object sender, RoutedEventArgs e)
5855
{
5956
CopyText(browserVersion);
6057
}
6158

62-
private void TryCopyAppVersion(object sender, RoutedEventArgs e)
59+
private void CopyAppVersion(object sender, RoutedEventArgs e)
6360
{
6461
CopyText(appVersion);
6562
}
6663

6764
private void OpenRepoWebsite(object sender, RoutedEventArgs e)
6865
{
6966
MainWindow mainWindow = App.GetWindowForElement(this);
70-
mainWindow.AddNewTab(new WebViewPage(new Uri("https://github.com/wtcpython/WinUIEdge")));
67+
mainWindow.AddNewTab(new WebViewPage(new("https://github.com/wtcpython/WinUIEdge")));
7168
}
7269
}
7370
}

Utilities.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public static unsafe string Win32SaveFile(string fileName, IntPtr hwnd)
9595
fsd.SetDefaultFolder((IShellItem)directoryShellItem);
9696
fsd.SetFileName(info.Name);
9797
fsd.SetDefaultExtension(info.Extension);
98-
fsd.Show(new HWND(hwnd));
98+
fsd.Show(new(hwnd));
9999
fsd.GetResult(out var ppsi);
100100

101101
ppsi.GetDisplayName(SIGDN.SIGDN_FILESYSPATH, out PWSTR pwFileName);

0 commit comments

Comments
 (0)