mirror of
https://github.com/BililiveRecorder/BililiveRecorder.git
synced 2024-11-16 11:42:22 +08:00
117 lines
7.3 KiB
XML
117 lines
7.3 KiB
XML
<ui:Page
|
|
x:Class="BililiveRecorder.WPF.Pages.RoomListPage"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:ui="http://schemas.modernwpf.com/2019"
|
|
xmlns:l="https://github.com/XAMLMarkupExtensions/WPFLocalizationExtension"
|
|
l:LocalizeDictionary.DesignCulture=""
|
|
l:ResxLocalizationProvider.DefaultAssembly="BililiveRecorder.WPF"
|
|
l:ResxLocalizationProvider.DefaultDictionary="Strings"
|
|
xmlns:local="clr-namespace:BililiveRecorder.WPF.Pages"
|
|
xmlns:c="clr-namespace:BililiveRecorder.WPF.Controls"
|
|
xmlns:m="clr-namespace:BililiveRecorder.WPF.Models"
|
|
xmlns:converters="clr-namespace:BililiveRecorder.WPF.Converters"
|
|
mc:Ignorable="d"
|
|
x:Name="TheRoomListPage"
|
|
d:DesignHeight="1000" d:DesignWidth="960"
|
|
DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=local:RootPage},Path=DataContext.Recorder,Mode=OneWay}"
|
|
>
|
|
<ui:Page.Resources>
|
|
<DataTemplate x:Key="NormalRoomCardTemplate">
|
|
<ui:ThemeShadowChrome IsShadowEnabled="True" Depth="10">
|
|
<c:RoomCard DeleteRequested="RoomCard_DeleteRequested" ShowSettingsRequested="RoomCard_ShowSettingsRequested" />
|
|
</ui:ThemeShadowChrome>
|
|
</DataTemplate>
|
|
<DataTemplate x:Key="AddRoomCardTemplate">
|
|
<ui:ThemeShadowChrome IsShadowEnabled="True" Depth="10">
|
|
<c:AddRoomCard AddRoomRequested="AddRoomCard_AddRoomRequested"/>
|
|
</ui:ThemeShadowChrome>
|
|
</DataTemplate>
|
|
<converters:NullValueTemplateSelector
|
|
x:Key="SelectorTemplate"
|
|
Normal="{StaticResource NormalRoomCardTemplate}"
|
|
Null="{StaticResource AddRoomCardTemplate}"/>
|
|
<converters:BoolToValueConverter x:Key="BooleanToUniformGridLayoutConverter">
|
|
<converters:BoolToValueConverter.TrueValue>
|
|
<ui:UniformGridLayout MinItemWidth="230" MinItemHeight="125"
|
|
ItemsStretch="None" MinRowSpacing="7" MinColumnSpacing="5"/>
|
|
</converters:BoolToValueConverter.TrueValue>
|
|
<converters:BoolToValueConverter.FalseValue>
|
|
<ui:UniformGridLayout MinItemWidth="230" MinItemHeight="100"
|
|
ItemsStretch="None" MinRowSpacing="7" MinColumnSpacing="5"/>
|
|
</converters:BoolToValueConverter.FalseValue>
|
|
</converters:BoolToValueConverter>
|
|
</ui:Page.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition x:Name="RoomListRowDefinition" Height="*"/>
|
|
<RowDefinition Height="3"/>
|
|
<RowDefinition x:Name="LogRowDefinition" Height="0"/>
|
|
</Grid.RowDefinitions>
|
|
<StackPanel>
|
|
<Menu>
|
|
<Separator/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_File}">
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_File_OpenWorkDirectory}" Click="MenuItem_OpenWorkDirectory_Click"/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_File_SaveConfig}" Click="MenuItem_SaveConfig_Click"/>
|
|
<Separator/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_File_ChangeWorkPath}" Click="MenuItem_ChangeWorkPath_Click"/>
|
|
<Separator/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_File_ShowLogFilesInExplorer}" Click="MenuItem_ShowLogFilesInExplorer_Click"/>
|
|
</MenuItem>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_View}">
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Sort_Default}" Tag="{x:Static local:SortedBy.None}" Click="MenuItem_SortBy_Click"/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Sort_RoomId}" Tag="{x:Static local:SortedBy.RoomId}" Click="MenuItem_SortBy_Click"/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Sort_Status}" Tag="{x:Static local:SortedBy.Status}" Click="MenuItem_SortBy_Click"/>
|
|
<Separator/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_View_ShowTitleAndAreaCheckBox}" IsCheckable="True" IsChecked="{Binding Config.Global.WpfShowTitleAndArea}"/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_View_ShowLogCheckBox}" IsCheckable="True" Checked="MenuItem_ShowLog_Click" Unchecked="MenuItem_HideLog_Click"/>
|
|
</MenuItem>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_AutoRecord}">
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_AutoRecord_EnableAll}" Click="MenuItem_EnableAutoRecAll_Click"/>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_AutoRecord_DisableAll}" Click="MenuItem_DisableAutoRecAll_Click"/>
|
|
</MenuItem>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Links}">
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Links_Website}" Command="{x:Static m:Commands.OpenLink}" CommandParameter="https://rec.danmuji.org/">
|
|
<MenuItem.Icon>
|
|
<ui:PathIcon Style="{StaticResource PathIconDataOpenInNew}"/>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Links_FAQ}" Command="{x:Static m:Commands.OpenLink}" CommandParameter="https://rec.danmuji.org/link/faq/">
|
|
<MenuItem.Icon>
|
|
<ui:PathIcon Style="{StaticResource PathIconDataOpenInNew}"/>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="{l:Loc RoomListPage_Menu_Links_Sponsor}" Command="{x:Static m:Commands.OpenLink}" CommandParameter="https://rec.danmuji.org/link/sponsor/">
|
|
<MenuItem.Icon>
|
|
<ui:PathIcon Style="{StaticResource PathIconDataOpenInNew}"/>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
</Menu>
|
|
<Separator/>
|
|
</StackPanel>
|
|
<ui:ItemsRepeaterScrollHost Grid.Row="1">
|
|
<ScrollViewer>
|
|
<ui:ItemsRepeater
|
|
HorizontalAlignment="Stretch" Margin="8"
|
|
Layout="{Binding Config.Global.WpfShowTitleAndArea,Mode=OneWay,Converter={StaticResource BooleanToUniformGridLayoutConverter}}"
|
|
ItemsSource="{Binding RoomList, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ui:Page}}"
|
|
ItemTemplate="{StaticResource SelectorTemplate}" />
|
|
</ScrollViewer>
|
|
</ui:ItemsRepeaterScrollHost>
|
|
<GridSplitter Grid.Row="2" x:Name="Splitter" ResizeDirection="Rows" Visibility="Collapsed"
|
|
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ShowsPreview="True"/>
|
|
<ui:ThemeShadowChrome Grid.Row="3" x:Name="LogElement" IsShadowEnabled="True" Depth="10" Margin="5" Visibility="Collapsed">
|
|
<Border Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
|
|
BorderBrush="{DynamicResource SystemControlBackgroundAccentBrush}"
|
|
BorderThickness="1" CornerRadius="5">
|
|
<c:LogPanel/>
|
|
</Border>
|
|
</ui:ThemeShadowChrome>
|
|
</Grid>
|
|
</ui:Page>
|