/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Views/Properties/SignaturesPage.xaml
210 строк
7 KB
Filippo Ferrario
Feature: Added `Digital Signatures` tab to the properties window (#17334)
30 июл 2025, 18:19
Не верифицирован
30 июл 2025, 18:19
ff566bb
Код
Авторство
О чём код?
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> <vm:BasePropertiesPage x:Class="Files.App.Views.Properties.SignaturesPage" 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:datamodels="using:Files.App.Data.Models" xmlns:helpers="using:Files.App.Helpers" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:toolkitconverters="using:CommunityToolkit.WinUI.Converters" xmlns:vm="using:Files.App.ViewModels.Properties" DataContext="{x:Bind SignaturesViewModel, Mode=OneWay}" Tag="Signatures" mc:Ignorable="d"> <vm:BasePropertiesPage.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ms-appx:///Styles/PropertiesStyles.xaml" /> </ResourceDictionary.MergedDictionaries> <toolkitconverters:BoolToObjectConverter x:Key="BoolToBrushConverter" FalseValue="{ThemeResource SystemFillColorCriticalBrush}" TrueValue="{ThemeResource SystemFillColorSuccessBrush}" /> <toolkitconverters:BoolNegationConverter x:Key="BoolNegationConverter" /> </ResourceDictionary> </vm:BasePropertiesPage.Resources> <ScrollViewer> <Grid x:Name="RootGrid" Padding="12,6"> <TextBlock x:Name="NoSignaturesMessage" Grid.Row="1" VerticalAlignment="Center" x:Load="{x:Bind SignaturesViewModel.NoSignatureFound}" FontSize="20" FontWeight="SemiBold" Text="{helpers:ResourceString Name=NoSignatureFound}" TextAlignment="Center" /> <!-- Signatures ItemsRepeater --> <ItemsRepeater x:Name="SignaturesListView" Grid.Row="1" x:Load="{x:Bind SignaturesViewModel.NoSignatureFound, Converter={StaticResource BoolNegationConverter}}" ItemsSource="{x:Bind SignaturesViewModel.Signatures, Mode=TwoWay}"> <!-- Template --> <ItemsRepeater.ItemTemplate> <DataTemplate x:DataType="datamodels:SignatureInfoItem"> <Expander x:Name="ItemDetails" Margin="0,6" HorizontalAlignment="Stretch" VerticalAlignment="Top" HorizontalContentAlignment="Stretch" Background="{ThemeResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="4" IsExpanded="True"> <Expander.Header> <Grid Padding="0,8" ColumnSpacing="12"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- Signature verified badge --> <Border x:Name="SignatureVerifiedBadge" Grid.RowSpan="2"> <FontIcon FontSize="24" Foreground="{x:Bind Verified, Converter={StaticResource BoolToBrushConverter}, Mode=OneWay}" Glyph="{x:Bind Glyph, Mode=OneWay}" /> </Border> <!-- Issuer --> <TextBlock Grid.Column="1" Text="{x:Bind IssuedTo, Mode=OneWay}" /> <!-- Current date --> <TextBlock Grid.Row="1" Grid.Column="1" FontSize="12" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="{x:Bind VerifiedTimestamp, Mode=OneWay}" /> <!-- TODO: Show certificate details --> <Button Grid.RowSpan="2" Grid.Column="2" Command="{x:Bind OpenDetailsCommand, Mode=OneWay}" Content="{helpers:ResourceString Name=Details}" /> </Grid> </Expander.Header> <Expander.Content> <Grid HorizontalAlignment="Stretch" ColumnSpacing="8" RowSpacing="8"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" MinWidth="100" MaxWidth="140" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- Version --> <TextBlock Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" Style="{StaticResource PropertyName}" Text="{helpers:ResourceString Name=SettingsAboutVersionTitle}" /> <TextBlock x:Name="DigitalSignatureVersionValue" Grid.Row="0" Grid.Column="1" Style="{StaticResource PropertyValueTextBlock}" Text="{x:Bind Version, Mode=OneWay}" TextWrapping="Wrap" /> <!-- Issued by --> <TextBlock Grid.Row="1" Grid.Column="0" HorizontalAlignment="Left" Style="{StaticResource PropertyName}" Text="{helpers:ResourceString Name=IssuedBy}" /> <TextBlock x:Name="DigitalSignatureIssuedByValue" Grid.Row="1" Grid.Column="1" Style="{StaticResource PropertyValueTextBlock}" Text="{x:Bind IssuedBy, Mode=OneWay}" TextWrapping="Wrap" /> <!-- Issued to --> <TextBlock Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left" Style="{StaticResource PropertyName}" Text="{helpers:ResourceString Name=IssuedTo}" /> <TextBlock x:Name="DigitalSignatureIssuedToValue" Grid.Row="2" Grid.Column="1" Style="{StaticResource PropertyValueTextBlock}" Text="{x:Bind IssuedTo, Mode=OneWay}" TextWrapping="Wrap" /> <!-- Valid from --> <TextBlock Grid.Row="3" Grid.Column="0" HorizontalAlignment="Left" Style="{StaticResource PropertyName}" Text="{helpers:ResourceString Name=ValidFrom}" /> <TextBlock x:Name="DigitalSignatureValidFromValue" Grid.Row="3" Grid.Column="1" Style="{StaticResource PropertyValueTextBlock}" Text="{x:Bind ValidFromTimestamp, Mode=OneWay}" TextWrapping="Wrap" /> <!-- Valid to --> <TextBlock Grid.Row="4" Grid.Column="0" HorizontalAlignment="Left" Style="{StaticResource PropertyName}" Text="{helpers:ResourceString Name=ValidTo}" /> <TextBlock x:Name="DigitalSignatureValidToValue" Grid.Row="4" Grid.Column="1" Style="{StaticResource PropertyValueTextBlock}" Text="{x:Bind ValidToTimestamp, Mode=OneWay}" TextWrapping="Wrap" /> </Grid> </Expander.Content> </Expander> </DataTemplate> </ItemsRepeater.ItemTemplate> </ItemsRepeater> </Grid> </ScrollViewer> </vm:BasePropertiesPage>