Skip to content

Commit 7583b29

Browse files
committed
标签栏SizeToContent
1 parent 8b75c39 commit 7583b29

File tree

8 files changed

+184
-38
lines changed

8 files changed

+184
-38
lines changed

PreLaunchTaskr.GUI.WinUI3/App.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace PreLaunchTaskr.GUI.WinUI3;
2222
/// </summary>
2323
public partial class App : Application
2424
{
25-
public static string DisplayVersion = "1.4.7"
25+
public static string DisplayVersion = "1.4.8"
2626
#if DEBUG
2727
+ " DEBUG"
2828
#endif

PreLaunchTaskr.GUI.WinUI3/Controls/MyGrid.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ public void RefreshLayout()
1414
{
1515
foreach (UIElement element in Children)
1616
{
17-
FrameworkElement? frameworkElement = element as FrameworkElement;
18-
if (frameworkElement is not null)
17+
if (element is FrameworkElement frameworkElement)
1918
{
2019
frameworkElement.HorizontalAlignment = ContentHorizontalAlignment;
2120
frameworkElement.VerticalAlignment = ContentVerticalAlignment;

PreLaunchTaskr.GUI.WinUI3/Controls/MyStackPanel.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ public void RefreshLayout()
1414
{
1515
foreach (UIElement element in Children)
1616
{
17-
FrameworkElement? frameworkElement = element as FrameworkElement;
18-
if (frameworkElement is not null)
17+
if (element is FrameworkElement frameworkElement)
1918
{
2019
frameworkElement.HorizontalAlignment = ContentHorizontalAlignment;
2120
frameworkElement.VerticalAlignment = ContentVerticalAlignment;

PreLaunchTaskr.GUI.WinUI3/PreLaunchTaskr.GUI.WinUI3.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@
192192
<PublishAot>True</PublishAot>
193193
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
194194
<ApplicationIcon>Assets\PreLaunchTaskr.ico</ApplicationIcon>
195-
<AssemblyVersion>1.4.2</AssemblyVersion>
196-
<FileVersion>1.4.2</FileVersion>
195+
<AssemblyVersion>1.4.8</AssemblyVersion>
196+
<FileVersion>1.4.8</FileVersion>
197197
</PropertyGroup>
198198
<ItemGroup>
199199
<PRIResource Remove="Services\**" />

PreLaunchTaskr.GUI.WinUI3/Views/MainPage.xaml

Lines changed: 136 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
<!--<SolidColorBrush x:Key="NavigationViewContentGridBorderBrush" Color="Transparent" />-->
2323
<!--<SolidColorBrush x:Key="NavigationViewContentBackground" Color="Transparent" />-->
2424
<!--<CornerRadius x:Key="NavigationViewContentGridCornerRadius">0</CornerRadius>-->
25-
<x:Double x:Key="AppBarThemeMinHeight">0</x:Double>
2625
<!--<Thickness x:Key="MenuBarItemMargin">4,0,4,0</Thickness>-->
26+
<Thickness x:Key="AppBarButtonTextLabelOnRightMargin">8,0,12,0</Thickness>
2727

2828
<!-- NavigationMenuItemTemplate -->
2929
<DataTemplate x:Key="ProgramListDataTemplate" x:DataType="vm:ProgramListItem">
@@ -206,8 +206,8 @@
206206

207207
<Button
208208
x:Name="TitleBarToggleButton"
209-
Grid.Row="0"
210-
Height="30"
209+
Grid.Column="0"
210+
Height="36"
211211
x:FieldModifier="private"
212212
Click="{x:Bind ToggleNavigationMenuPane}"
213213
Style="{ThemeResource TitleBarPaneToggleButtonStyle}">
@@ -216,25 +216,156 @@
216216
</Button.KeyboardAccelerators>
217217
</Button>
218218

219+
<!--<CommandBar Grid.Column="1" DefaultLabelPosition="Right">
220+
<AppBarButton Icon="Add" Label="添加程序">
221+
<AppBarButton.KeyboardAccelerators>
222+
<KeyboardAccelerator Key="F1" />
223+
</AppBarButton.KeyboardAccelerators>
224+
225+
<AppBarButton.Flyout>
226+
<MenuFlyout Placement="Bottom">
227+
<MenuFlyoutItem Click="{x:Bind SelectProgramFromFile}" Text="从文件管理器选取">
228+
<MenuFlyoutItem.Icon>
229+
<FontIcon Glyph="&#xEC50;" />
230+
</MenuFlyoutItem.Icon>
231+
</MenuFlyoutItem>
232+
233+
<MenuFlyoutItem Click="{x:Bind SelectInstalledProgram}" Text="从已安装的应用程序中选取">
234+
<MenuFlyoutItem.Icon>
235+
<FontIcon Glyph="&#xE71D;" />
236+
</MenuFlyoutItem.Icon>
237+
</MenuFlyoutItem>
238+
239+
<MenuFlyoutItem Click="{x:Bind InputProgramPath}" Text="输入或粘贴路径">
240+
<MenuFlyoutItem.Icon>
241+
<SymbolIcon Symbol="Paste" />
242+
</MenuFlyoutItem.Icon>
243+
</MenuFlyoutItem>
244+
245+
<MenuFlyoutItem Click="{x:Bind ShowDragToAddGuide}" Text="把文件拖拽进来">
246+
<MenuFlyoutItem.Icon>
247+
<SymbolIcon Symbol="TouchPointer" />
248+
</MenuFlyoutItem.Icon>
249+
</MenuFlyoutItem>
250+
</MenuFlyout>
251+
</AppBarButton.Flyout>
252+
</AppBarButton>
253+
254+
<AppBarButton Icon="Remove" Label="移除程序">
255+
<AppBarButton.KeyboardAccelerators>
256+
<KeyboardAccelerator Key="F2" />
257+
</AppBarButton.KeyboardAccelerators>
258+
259+
<AppBarButton.Flyout>
260+
<MenuFlyout>
261+
<MenuFlyoutSubItem
262+
Foreground="Red"
263+
IsEnabled="{x:Bind helper:XamlHelper.IsNotNull(viewModel.SelectedItem), Mode=OneWay}"
264+
Text="移除选中项">
265+
266+
<MenuFlyoutSubItem.Icon>
267+
<SymbolIcon Symbol="Delete" />
268+
</MenuFlyoutSubItem.Icon>
269+
270+
<MenuFlyoutItem
271+
Click="RemoveSelectedItem"
272+
Foreground="Red"
273+
Text="确定移除选中项">
274+
<MenuFlyoutItem.Icon>
275+
<SymbolIcon Symbol="Delete" />
276+
</MenuFlyoutItem.Icon>
277+
</MenuFlyoutItem>
278+
279+
<MenuFlyoutItem IsEnabled="False" Text="也可以在列表项上右键">
280+
<MenuFlyoutItem.Icon>
281+
<FontIcon Glyph="&#xE946;" />
282+
</MenuFlyoutItem.Icon>
283+
</MenuFlyoutItem>
284+
</MenuFlyoutSubItem>
285+
286+
<MenuFlyoutSubItem Foreground="Red" Text="移除全部">
287+
<MenuFlyoutSubItem.Icon>
288+
<SymbolIcon Symbol="Delete" />
289+
</MenuFlyoutSubItem.Icon>
290+
<MenuFlyoutItem
291+
Click="RemoveAllItems"
292+
Foreground="Red"
293+
Text="全部关闭,确定移除全部">
294+
<MenuFlyoutItem.Icon>
295+
<SymbolIcon Symbol="Delete" />
296+
</MenuFlyoutItem.Icon>
297+
</MenuFlyoutItem>
298+
</MenuFlyoutSubItem>
299+
</MenuFlyout>
300+
</AppBarButton.Flyout>
301+
</AppBarButton>
302+
303+
<AppBarButton Label="批量开关">
304+
<AppBarButton.Icon>
305+
<FontIcon Glyph="&#xE71D;" />
306+
</AppBarButton.Icon>
307+
308+
<AppBarButton.KeyboardAccelerators>
309+
<KeyboardAccelerator Key="F3" />
310+
</AppBarButton.KeyboardAccelerators>
311+
312+
<AppBarButton.Flyout>
313+
<MenuFlyout>
314+
<MenuFlyoutItem Click="EnableAll" Text="全部启用">
315+
<MenuFlyoutItem.Icon>
316+
<FontIcon Glyph="&#xF19F;" />
317+
</MenuFlyoutItem.Icon>
318+
</MenuFlyoutItem>
319+
<MenuFlyoutItem Click="DisableAll" Text="全部关闭">
320+
<MenuFlyoutItem.Icon>
321+
<FontIcon Glyph="&#xF19E;" />
322+
</MenuFlyoutItem.Icon>
323+
</MenuFlyoutItem>
324+
</MenuFlyout>
325+
</AppBarButton.Flyout>
326+
</AppBarButton>
327+
328+
<AppBarButton Label="其他…" Icon="More">
329+
<AppBarButton.KeyboardAccelerators>
330+
<KeyboardAccelerator Key="F4" />
331+
</AppBarButton.KeyboardAccelerators>
332+
333+
<AppBarButton.Flyout>
334+
<MenuFlyout>
335+
<MenuFlyoutItem Click="{x:Bind ShowAboutProgramPage}" Text="关于此应用">
336+
<MenuFlyoutItem.Icon>
337+
<SymbolIcon Symbol="Emoji2" />
338+
</MenuFlyoutItem.Icon>
339+
</MenuFlyoutItem>
340+
341+
<MenuFlyoutItem Click="{x:Bind LoadProgramList}" Text="刷新">
342+
<MenuFlyoutItem.Icon>
343+
<SymbolIcon Symbol="Refresh" />
344+
</MenuFlyoutItem.Icon>
345+
</MenuFlyoutItem>
346+
</MenuFlyout>
347+
</AppBarButton.Flyout>
348+
</AppBarButton>
349+
</CommandBar>-->
350+
219351
<MenuBar
220352
x:Name="MainMenuBar"
221353
Grid.Column="1"
222354
x:FieldModifier="private">
355+
223356
<MenuBarItem Title="添加程序" AccessKey="F1">
224357
<MenuBarItem.KeyboardAccelerators>
225358
<KeyboardAccelerator Key="F1" />
226359
</MenuBarItem.KeyboardAccelerators>
227360

228361
<MenuFlyoutItem Click="{x:Bind SelectProgramFromFile}" Text="从文件管理器选取">
229362
<MenuFlyoutItem.Icon>
230-
<!-- FileExplorer -->
231363
<FontIcon Glyph="&#xEC50;" />
232364
</MenuFlyoutItem.Icon>
233365
</MenuFlyoutItem>
234366

235367
<MenuFlyoutItem Click="{x:Bind SelectInstalledProgram}" Text="从已安装的应用程序中选取">
236368
<MenuFlyoutItem.Icon>
237-
<!-- AllApps -->
238369
<FontIcon Glyph="&#xE71D;" />
239370
</MenuFlyoutItem.Icon>
240371
</MenuFlyoutItem>
@@ -277,7 +408,6 @@
277408

278409
<MenuFlyoutItem IsEnabled="False" Text="也可以在列表项上右键">
279410
<MenuFlyoutItem.Icon>
280-
<!-- Info -->
281411
<FontIcon Glyph="&#xE946;" />
282412
</MenuFlyoutItem.Icon>
283413
</MenuFlyoutItem>
@@ -305,13 +435,11 @@
305435

306436
<MenuFlyoutItem Click="EnableAll" Text="全部启用">
307437
<MenuFlyoutItem.Icon>
308-
<!-- ToggleRight ToggleSwitch ON -->
309438
<FontIcon Glyph="&#xF19F;" />
310439
</MenuFlyoutItem.Icon>
311440
</MenuFlyoutItem>
312441
<MenuFlyoutItem Click="DisableAll" Text="全部关闭">
313442
<MenuFlyoutItem.Icon>
314-
<!-- ToggleLeft ToggleSwitch OFF -->
315443
<FontIcon Glyph="&#xF19E;" />
316444
</MenuFlyoutItem.Icon>
317445
</MenuFlyoutItem>
@@ -342,10 +470,6 @@
342470
AnimatedIcon.State="Pressed"
343471
Click="{x:Bind GoToSettingsPage}"
344472
Style="{ThemeResource CommandBarFlyoutEllipsisButtonStyle}">
345-
346-
-->
347-
<!-- 设置图标 -->
348-
<!--
349473
<FontIcon
350474
AnimatedIcon.State="Pressed"
351475
FontSize="{ThemeResource InfoBarIconFontSize}"

PreLaunchTaskr.GUI.WinUI3/Views/MainPage.xaml.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,17 @@ public MainPage(MainViewModel? viewModel)
3838

3939
Navigation.ExpandedModeThresholdWidth = Math.E * Navigation.OpenPaneLength;
4040
this.viewModel = viewModel;
41+
4142
App.Current.MultiTab.TabStripHidden += (o, e) =>
4243
{
4344
App.Current.MainWindow.SetTitleBar(TitleBarArea);
4445
titleBarPassthroughHelper.Passthrough(TitleBarToggleButton);
46+
//App.Current.MainWindow.AppWindow.TitleBar.PreferredHeightOption = Microsoft.UI.Windowing.TitleBarHeightOption.Tall;
4547
};
48+
//App.Current.MultiTab.TabStripShown += (o, e) =>
49+
//{
50+
// App.Current.MainWindow.AppWindow.TitleBar.PreferredHeightOption = Microsoft.UI.Windowing.TitleBarHeightOption.Standard;
51+
//};
4652
}
4753

4854
private MainViewModel? viewModel;
@@ -396,4 +402,12 @@ private void ToggleSwitch_PointerReleased(object sender, Microsoft.UI.Xaml.Input
396402
{
397403
isUserToggled = true;
398404
}
405+
406+
private void ShowContextMenuOnTapped(object sender, Microsoft.UI.Xaml.Input.TappedRoutedEventArgs e)
407+
{
408+
if (sender is FrameworkElement frameworkElement)
409+
{
410+
frameworkElement.ContextFlyout?.ShowAt(frameworkElement);
411+
}
412+
}
399413
}

PreLaunchTaskr.GUI.WinUI3/Views/MultiTabPage.xaml

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414

1515
<Page.Resources>
1616
<StaticResource x:Key="TabViewItemHeaderBackgroundSelected" ResourceKey="LayerOnMicaBaseAltFillColorDefault" />
17-
<!--<Thickness x:Key="TabViewItemHeaderIconMargin">4,0,4,0</Thickness>
18-
<Thickness x:Key="TabViewItemHeaderPadding">4,3,4,3</Thickness>
19-
<Thickness x:Key="TabViewSelectedItemHeaderPadding">5,3,5,4</Thickness>
20-
<Thickness x:Key="TabViewItemHeaderCloseMargin">4,0,4,0</Thickness>-->
17+
<Thickness x:Key="TabViewHeaderPadding">0,0,0,0</Thickness>
18+
<Thickness x:Key="TabViewItemHeaderIconMargin">8,0,8,0</Thickness>
19+
<Thickness x:Key="TabViewItemHeaderPadding">0,0,0,0</Thickness>
20+
<Thickness x:Key="TabViewSelectedItemHeaderPadding">1,0,1,0</Thickness>
21+
<Thickness x:Key="TabViewItemHeaderCloseMargin">4,0,4,0</Thickness>
2122
<StaticResource x:Key="TabViewItemHeaderCloseButtonWidth" ResourceKey="TabViewItemAddButtonHeight" />
2223

2324
<Style TargetType="TabViewListView">
@@ -52,24 +53,24 @@
5253
SizeChanged="TabStrip_SizeChanged"
5354
TabCloseRequested="TabStrip_TabCloseRequested"
5455
TabItemsChanged="TabStrip_TabItemsChanged"
55-
TabItemsSource="{x:Bind TabStripItems}">
56+
TabItemsSource="{x:Bind TabStripItems}"
57+
TabWidthMode="SizeToContent">
5658

5759
<my:TitleBarTabView.TabStripHeader>
58-
<Image
59-
Height="20"
60-
Margin="14,8,10,0"
61-
VerticalAlignment="Center"
62-
Source="/Assets/PreLaunchTaskrNewIcon.png" />
60+
<my:MyStackPanel
61+
Margin="14,8,8,0"
62+
ContentVerticalAlignment="Center"
63+
Orientation="Horizontal"
64+
Spacing="8">
65+
<Image
66+
Height="20"
67+
VerticalAlignment="Center"
68+
Source="/Assets/PreLaunchTaskrNewIcon.png"
69+
Tapped="ShowContextMenuOnTapped" />
70+
<!--<TextBlock Style="{ThemeResource CaptionTextBlockStyle}" Text="PreLaunchTaskr" />-->
71+
</my:MyStackPanel>
6372
</my:TitleBarTabView.TabStripHeader>
6473

65-
<!--<my:TitleBarTabView.TabStripFooter>
66-
<Border
67-
x:Name="TabStripFooterSpace"
68-
Grid.Column="1"
69-
x:FieldModifier="private"
70-
SizeChanged="TabStripFooterSpace_SizeChanged" />
71-
</my:TitleBarTabView.TabStripFooter>-->
72-
7374
<my:TitleBarTabView.TabItemTemplate>
7475
<DataTemplate x:DataType="vm:TabStripItem">
7576
<TabViewItem

PreLaunchTaskr.GUI.WinUI3/Views/MultiTabPage.xaml.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ private void Page_Loaded(object sender, RoutedEventArgs e)
117117
//TabStripFooterSpace.MinWidth = App.Current.MainWindow.AppWindow.TitleBar.RightInset / XamlRoot.RasterizationScale;
118118
App.Current.MainWindow.SetTitleBar(TabStrip);
119119
AddTabStripItem(new TabStripItem(
120-
nameof(PreLaunchTaskr),
120+
//nameof(PreLaunchTaskr),
121+
string.Empty,
121122
new SymbolIconSource { Symbol = Symbol.Home },
122123
closeable: false,
123124
typeof(MainPage),
@@ -193,4 +194,12 @@ private void TabStrip_TabCloseRequested(TabView sender, TabViewTabCloseRequested
193194
//sender.TabItems.Remove(args.Tab); // 绑定了 ItemsSource,不能使用这个
194195
RemoveTabStripItem((TabStripItem) args.Item);
195196
}
197+
198+
private void ShowContextMenuOnTapped(object sender, TappedRoutedEventArgs e)
199+
{
200+
if (sender is not FrameworkElement self)
201+
return;
202+
203+
self.ContextFlyout?.ShowAt(self);
204+
}
196205
}

0 commit comments

Comments
 (0)