/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Dialogs/CreateArchiveDialog.xaml
254 строки
8 KB
yair100
Feature: Add 7z dictionary and word size options (#18232)
11 мар 2026, 18:05
Не верифицирован
11 мар 2026, 18:05
7f77252
Код
Авторство
О чём код?
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> <ContentDialog x:Class="Files.App.Dialogs.CreateArchiveDialog" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:helpers="using:Files.App.Helpers" xmlns:local="using:Files.App.Dialogs" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="{helpers:ResourceString Name=CreateArchive}" d:DesignHeight="300" d:DesignWidth="400" CloseButtonText="{helpers:ResourceString Name=Cancel}" Closing="ContentDialog_Closing" CornerRadius="{StaticResource OverlayCornerRadius}" DefaultButton="Primary" HighContrastAdjustment="None" IsPrimaryButtonEnabled="{x:Bind ViewModel.IsNameValid, Mode=OneWay}" Loaded="ContentDialog_Loaded" PrimaryButtonText="{helpers:ResourceString Name=Create}" RequestedTheme="{x:Bind RootAppElement.RequestedTheme, Mode=OneWay}" Style="{StaticResource DefaultContentDialogStyle}" mc:Ignorable="d"> <ScrollViewer VerticalScrollBarVisibility="Auto"> <StackPanel Width="440" Spacing="4"> <!-- Archive Name --> <Grid Padding="12" Background="{ThemeResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" ColumnSpacing="8" CornerRadius="4"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=Name}" /> <TextBox x:Name="FileNameBox" Grid.Column="1" Width="260" PlaceholderText="{helpers:ResourceString Name=EnterName}" Text="{x:Bind ViewModel.FileName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <TextBox.Resources> <TeachingTip x:Name="InvalidNameWarning" Title="{helpers:ResourceString Name=InvalidFilename/Text}" IsOpen="{x:Bind ViewModel.ShowNameWarning, Mode=OneWay}" PreferredPlacement="Bottom" Target="{x:Bind FileNameBox}" /> </TextBox.Resources> </TextBox> </Grid> <!-- Archive Options --> <Grid Padding="12" Background="{ThemeResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" ColumnSpacing="8" CornerRadius="4" RowSpacing="12"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- Archive Format --> <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=Format}" /> <ComboBox x:Name="FileFormatSelector" Grid.Row="0" Grid.Column="1" Width="160" DisplayMemberPath="Label" ItemsSource="{x:Bind ViewModel.FileFormats}" SelectedItem="{x:Bind ViewModel.FileFormat, Mode=TwoWay}" SelectedValuePath="Key" /> <!-- Compression Level --> <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=CompressionLevel}" /> <ComboBox x:Name="CompressionLevelSelector" Grid.Row="1" Grid.Column="1" Width="160" HorizontalAlignment="Right" DisplayMemberPath="Label" ItemsSource="{x:Bind ViewModel.CompressionLevels}" SelectedItem="{x:Bind ViewModel.CompressionLevel, Mode=TwoWay}" SelectedValuePath="Key" /> <!-- Splitting Size --> <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=SplittingSize}" /> <ComboBox x:Name="SplittingSizeSelector" Grid.Row="2" Grid.Column="1" Width="160" HorizontalAlignment="Right" IsEnabled="{x:Bind ViewModel.CanSplit, Mode=OneWay}" ItemsSource="{x:Bind ViewModel.SplittingSizes}" SelectedItem="{x:Bind ViewModel.SplittingSize, Mode=TwoWay}" SelectedValuePath="Key"> <ComboBox.ItemTemplate> <DataTemplate x:DataType="local:SplittingSizeItem"> <StackPanel Orientation="Horizontal" Spacing="4"> <TextBlock Text="{x:Bind Label}" /> <TextBlock Text="{x:Bind Separator}" Visibility="{Binding IsDropDownOpen, ElementName=SplittingSizeSelector}" /> <TextBlock Text="{x:Bind Description}" Visibility="{Binding IsDropDownOpen, ElementName=SplittingSizeSelector}" /> </StackPanel> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> <!-- Dictionary Size --> <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=DictionarySize}" /> <ComboBox x:Name="DictionarySizeSelector" Grid.Row="3" Grid.Column="1" Width="160" HorizontalAlignment="Right" DisplayMemberPath="Label" IsEnabled="{x:Bind ViewModel.CanSplit, Mode=OneWay}" ItemsSource="{x:Bind ViewModel.DictionarySizes}" SelectedItem="{x:Bind ViewModel.DictionarySize, Mode=TwoWay}" SelectedValuePath="Key" /> <!-- Word Size --> <TextBlock Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=WordSize}" /> <ComboBox x:Name="WordSizeSelector" Grid.Row="4" Grid.Column="1" Width="160" HorizontalAlignment="Right" DisplayMemberPath="Label" IsEnabled="{x:Bind ViewModel.CanSplit, Mode=OneWay}" ItemsSource="{x:Bind ViewModel.WordSizes}" SelectedItem="{x:Bind ViewModel.WordSize, Mode=TwoWay}" SelectedValuePath="Key" /> <!-- CPU Threads --> <TextBlock Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=CPUThreads}" /> <NumberBox Grid.Row="5" Grid.Column="1" HorizontalAlignment="Right" AutomationProperties.Name="{helpers:ResourceString Name=CPUThreads}" Maximum="{x:Bind ViewModel.CPUThreads, Mode=OneTime}" Minimum="1" SpinButtonPlacementMode="Inline" Value="{x:Bind ViewModel.CPUThreads, Mode=TwoWay}" /> </Grid> <!-- Encryption Options --> <Expander HorizontalAlignment="Stretch" Header="{helpers:ResourceString Name=Encryption}" IsExpanded="{x:Bind ViewModel.UseEncryption, Mode=TwoWay}"> <Expander.Content> <Grid Width="400"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" VerticalAlignment="Center" Text="{helpers:ResourceString Name=Password}" /> <PasswordBox x:Name="PasswordBox" Grid.Column="1" Width="260" IsPasswordRevealButtonEnabled="True" Loading="PasswordBox_Loading" Password="{x:Bind ViewModel.Password, Mode=TwoWay}" PasswordRevealMode="Peek" PlaceholderText="{helpers:ResourceString Name=Password}" /> </Grid> </Expander.Content> </Expander> <!-- Memory Usage Estimate --> <Grid Padding="12" Background="{ThemeResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="4" RowSpacing="4" Visibility="{x:Bind ViewModel.CanSplit, Mode=OneWay}"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" FontSize="12" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="{x:Bind ViewModel.EstimatedMemoryText, Mode=OneWay}" /> <TextBlock Grid.Row="1" FontSize="12" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="{x:Bind ViewModel.AvailableMemoryText, Mode=OneWay}" /> </Grid> </StackPanel> </ScrollViewer> </ContentDialog>