2025-11-15 14:52:01 +01:00
|
|
|
<abstract:MailRenderingPageAbstract
|
2025-12-26 20:46:48 +01:00
|
|
|
x:Class="Wino.Views.Mail.MailRenderingPage"
|
2025-09-29 11:16:14 +02:00
|
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
|
xmlns:abstract="using:Wino.Views.Abstract"
|
|
|
|
|
xmlns:controls="using:Wino.Controls"
|
2026-04-03 19:50:52 +02:00
|
|
|
xmlns:coreControls="using:Wino.Mail.WinUI.Controls"
|
2025-11-15 14:52:01 +01:00
|
|
|
xmlns:customcontrols="using:Wino.Mail.WinUI.Controls.CustomControls"
|
2025-09-29 11:16:14 +02:00
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
|
|
|
xmlns:domain="using:Wino.Core.Domain"
|
|
|
|
|
xmlns:entities="using:Wino.Core.Domain.Entities.Shared"
|
|
|
|
|
xmlns:helpers="using:Wino.Helpers"
|
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
|
|
|
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
|
|
|
|
|
xmlns:toolkit="using:CommunityToolkit.WinUI.Controls"
|
|
|
|
|
xmlns:viewModelData="using:Wino.Mail.ViewModels.Data"
|
|
|
|
|
x:Name="root"
|
|
|
|
|
IsDarkEditor="{x:Bind ViewModel.IsDarkWebviewRenderer, Mode=TwoWay}"
|
|
|
|
|
mc:Ignorable="d">
|
|
|
|
|
|
2025-12-31 11:08:30 +01:00
|
|
|
<Page.KeyboardAccelerators>
|
|
|
|
|
<KeyboardAccelerator Key="Escape" Invoked="EscapeInvoked" />
|
|
|
|
|
</Page.KeyboardAccelerators>
|
2025-09-29 11:16:14 +02:00
|
|
|
<Page.Resources>
|
|
|
|
|
<DataTemplate x:Key="InternetAddressTemplate" x:DataType="viewModelData:AccountContactViewModel">
|
|
|
|
|
<HyperlinkButton
|
|
|
|
|
Margin="-2,-2"
|
|
|
|
|
Padding="4,2"
|
|
|
|
|
Click="InternetAddressClicked"
|
|
|
|
|
Content="{x:Bind ShortNameOrYou}"
|
|
|
|
|
ToolTipService.ToolTip="{x:Bind DisplayName}">
|
|
|
|
|
<HyperlinkButton.ContextFlyout>
|
|
|
|
|
<Flyout Placement="Bottom">
|
|
|
|
|
<Grid ColumnSpacing="10">
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
|
|
|
|
|
<controls:ImagePreviewControl
|
|
|
|
|
Grid.RowSpan="2"
|
|
|
|
|
Width="36"
|
|
|
|
|
Height="36"
|
2026-02-25 01:41:48 +01:00
|
|
|
MailItemInformation="{x:Bind}" />
|
2025-09-29 11:16:14 +02:00
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="1" Text="{x:Bind Name}" />
|
|
|
|
|
|
|
|
|
|
<HyperlinkButton
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
Padding="0"
|
2025-11-16 00:23:23 +01:00
|
|
|
Click="CopyAddress_Click"
|
2025-09-29 11:16:14 +02:00
|
|
|
CommandParameter="{x:Bind Address}"
|
|
|
|
|
Content="{x:Bind Address}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
</Flyout>
|
|
|
|
|
</HyperlinkButton.ContextFlyout>
|
|
|
|
|
</HyperlinkButton>
|
|
|
|
|
</DataTemplate>
|
|
|
|
|
|
|
|
|
|
<!-- Attachment Template -->
|
|
|
|
|
<!-- Margin -8 0 is used to remove the padding from the ListViewItem -->
|
|
|
|
|
<DataTemplate x:Key="FileAttachmentTemplate" x:DataType="viewModelData:MailAttachmentViewModel">
|
|
|
|
|
<Grid Height="51">
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="50" />
|
|
|
|
|
<RowDefinition Height="*" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
<Grid
|
|
|
|
|
Grid.Row="0"
|
|
|
|
|
Height="50"
|
|
|
|
|
Margin="-8,0,0,0"
|
|
|
|
|
Background="Transparent"
|
|
|
|
|
ColumnSpacing="3">
|
|
|
|
|
<ToolTipService.ToolTip>
|
|
|
|
|
<ToolTip Content="{x:Bind FileName}" />
|
|
|
|
|
</ToolTipService.ToolTip>
|
|
|
|
|
<Grid.ContextFlyout>
|
2026-04-18 01:39:25 +02:00
|
|
|
<coreControls:WinoMenuFlyout Placement="Right">
|
2025-09-29 11:16:14 +02:00
|
|
|
<MenuFlyoutItem
|
2025-11-16 00:23:23 +01:00
|
|
|
Click="OpenAttachment_Click"
|
2025-09-29 11:16:14 +02:00
|
|
|
CommandParameter="{x:Bind}"
|
|
|
|
|
Text="{x:Bind domain:Translator.Buttons_Open}">
|
|
|
|
|
<MenuFlyoutItem.Icon>
|
|
|
|
|
<PathIcon Data="{StaticResource OpenFilePathIcon}" />
|
|
|
|
|
</MenuFlyoutItem.Icon>
|
|
|
|
|
</MenuFlyoutItem>
|
|
|
|
|
<MenuFlyoutItem
|
2025-11-16 00:23:23 +01:00
|
|
|
Click="SaveAttachment_Click"
|
2025-09-29 11:16:14 +02:00
|
|
|
CommandParameter="{x:Bind}"
|
|
|
|
|
Text="{x:Bind domain:Translator.Buttons_Save}">
|
|
|
|
|
<MenuFlyoutItem.Icon>
|
|
|
|
|
<PathIcon Data="{StaticResource SaveAttachmentPathIcon}" />
|
|
|
|
|
</MenuFlyoutItem.Icon>
|
|
|
|
|
</MenuFlyoutItem>
|
2026-04-18 01:39:25 +02:00
|
|
|
</coreControls:WinoMenuFlyout>
|
2025-09-29 11:16:14 +02:00
|
|
|
</Grid.ContextFlyout>
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="40" />
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
|
|
|
|
|
<!-- Icon -->
|
|
|
|
|
<ContentControl
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
Content="{x:Bind AttachmentType}"
|
|
|
|
|
ContentTemplateSelector="{StaticResource FileTypeIconSelector}" />
|
|
|
|
|
|
|
|
|
|
<!-- Name && Size -->
|
|
|
|
|
<Grid
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
MaxWidth="200"
|
|
|
|
|
VerticalAlignment="Center">
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="*" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
FontSize="13"
|
|
|
|
|
MaxLines="1"
|
|
|
|
|
Text="{x:Bind FileName}"
|
|
|
|
|
TextTrimming="CharacterEllipsis"
|
|
|
|
|
TextWrapping="Wrap" />
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
|
VerticalAlignment="Bottom"
|
|
|
|
|
FontSize="11"
|
|
|
|
|
Foreground="Gray"
|
|
|
|
|
Text="{x:Bind ReadableSize}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
</Grid>
|
|
|
|
|
<ProgressBar
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
Margin="0,-5,0,0"
|
|
|
|
|
HorizontalAlignment="Stretch"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
IsIndeterminate="{x:Bind IsBusy, Mode=OneWay}"
|
|
|
|
|
ShowError="False"
|
|
|
|
|
ShowPaused="False"
|
|
|
|
|
Visibility="{x:Bind IsBusy, Mode=OneWay}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
</DataTemplate>
|
|
|
|
|
</Page.Resources>
|
|
|
|
|
|
|
|
|
|
<!-- Attachments and WebView2 -->
|
2026-03-07 11:43:56 +01:00
|
|
|
<Grid
|
|
|
|
|
x:Name="RendererGridFrame"
|
|
|
|
|
Margin="0,2,0,0"
|
|
|
|
|
RowSpacing="7">
|
2025-09-29 11:16:14 +02:00
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="*" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
<Grid.ChildrenTransitions>
|
|
|
|
|
<TransitionCollection>
|
|
|
|
|
<RepositionThemeTransition IsStaggeringEnabled="False" />
|
|
|
|
|
</TransitionCollection>
|
|
|
|
|
</Grid.ChildrenTransitions>
|
|
|
|
|
|
|
|
|
|
<Border
|
|
|
|
|
Background="{ThemeResource WinoContentZoneBackgroud}"
|
|
|
|
|
BorderBrush="{StaticResource CardStrokeColorDefaultBrush}"
|
|
|
|
|
BorderThickness="1"
|
2026-02-05 12:48:38 +01:00
|
|
|
CornerRadius="{ThemeResource OverlayCornerRadius}"
|
|
|
|
|
Translation="0,0,20">
|
|
|
|
|
<Border.Shadow>
|
|
|
|
|
<ThemeShadow />
|
|
|
|
|
</Border.Shadow>
|
2025-09-29 11:16:14 +02:00
|
|
|
<Grid Margin="8">
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
2026-04-03 11:56:25 +02:00
|
|
|
<RowDefinition Height="Auto" />
|
2025-09-29 11:16:14 +02:00
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
<Grid Grid.Row="0" Margin="5,0">
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
2025-11-23 20:56:57 +01:00
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
2025-09-29 11:16:14 +02:00
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
FontSize="18"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
IsTextSelectionEnabled="True"
|
|
|
|
|
Text="{x:Bind ViewModel.Subject, Mode=OneWay}"
|
|
|
|
|
TextWrapping="Wrap" />
|
|
|
|
|
|
|
|
|
|
<HyperlinkButton
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
Padding="5,1,5,1"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
Command="{x:Bind ViewModel.UnsubscribeCommand}"
|
|
|
|
|
Visibility="{x:Bind ViewModel.CanUnsubscribe, Mode=OneWay}">
|
|
|
|
|
<StackPanel Orientation="Horizontal" Spacing="3">
|
|
|
|
|
<Viewbox Width="16" Height="16">
|
|
|
|
|
<PathIcon
|
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
Data="F1 M 3.75 4.902344 C 3.75 4.225262 3.885091 3.588867 4.155273 2.993164 C 4.425456 2.397461 4.790039 1.878256 5.249023 1.435547 C 5.708008 0.99284 6.238606 0.642904 6.84082 0.385742 C 7.443034 0.128582 8.079427 0 8.75 0 C 9.420572 0 10.056966 0.128582 10.65918 0.385742 C 11.261393 0.642904 11.791992 0.99284 12.250977 1.435547 C 12.709961 1.878256 13.074544 2.397461 13.344727 2.993164 C 13.614908 3.588867 13.75 4.225262 13.75 4.902344 C 13.75 5.332031 13.707682 5.740561 13.623047 6.12793 C 13.538411 6.5153 13.395182 6.901042 13.193359 7.285156 C 12.307942 7.434896 11.484375 7.734375 10.722656 8.183594 C 11.295572 7.819012 11.735025 7.353517 12.041016 6.787109 C 12.347005 6.220704 12.5 5.598959 12.5 4.921875 C 12.5 4.414062 12.399088 3.937176 12.197266 3.491211 C 11.995442 3.045248 11.722005 2.65625 11.376953 2.324219 C 11.0319 1.992188 10.633138 1.730145 10.180664 1.538086 C 9.728189 1.346029 9.251302 1.25 8.75 1.25 C 8.229166 1.25 7.740885 1.347656 7.285156 1.542969 C 6.829427 1.738281 6.432292 2.005209 6.09375 2.34375 C 5.755208 2.682293 5.488281 3.079428 5.292969 3.535156 C 5.097656 3.990887 5 4.479167 5 5 C 5 5.501303 5.096028 5.97819 5.288086 6.430664 C 5.480143 6.883139 5.742188 7.281902 6.074219 7.626953 C 6.40625 7.972006 6.795247 8.245443 7.241211 8.447266 C 7.687174 8.649089 8.164062 8.75 8.671875 8.75 C 9.029947 8.75 9.368489 8.710938 9.6875 8.632812 C 10.00651 8.554688 10.322266 8.424479 10.634766 8.242188 C 9.873047 8.704428 9.222005 9.290365 8.681641 10 L 8.662109 10 C 8.011067 10 7.389323 9.868164 6.796875 9.604492 C 6.204427 9.34082 5.681966 8.984375 5.229492 8.535156 C 4.777018 8.085938 4.417317 7.565104 4.150391 6.972656 C 3.883463 6.380209 3.75 5.755209 3.75 5.097656 Z M 8.75 14.375 C 8.75 13.600261 8.898111 12.871094 9.194336 12.1875 C 9.49056 11.503906 9.892578 10.908203 10.400391 10.400391 C 10.908203 9.892578 11.503906 9.490561 12.1875 9.194336 C 12.871093 8.898112 13.60026 8.75 14.375 8.75 C 14.889322 8.75 15.385741 8.816732 15.864258 8.950195 C 16.342773 9.083659 16.790363 9.272461 17.207031 9.516602 C 17.623697 9.760742 18.004557 10.055339 18.349609 10.400391 C 18.69466 10.745443 18.989258 11.126303 19.233398 11.542969 C 19.477539 11.959636 19.66634 12.407227 19.799805 12.885742 C 19.933268 13.364258 20 13.860678 20 14.375 C 20 15.14974 19.851887 15.878906 19.555664 16.5625 C 19.259439 17.246094 18.857422 17.841797 18.349609 18.349609 C 17.841797 18.857422 17.246094 19.259439 16.5625 19.555664 C 15.878906 19.851889 15.149739 20 14.375 20 C 13.59375 20 12.861328 19.853516 12.177734 19.560547 C 11.494141 19.267578 10.898438 18.867188 10.390625 18.359375 C 9.882812 17.851562 9.482422 17.255859 9.189453 16.572266 C 8.896484 15.888672 8.75 15.15625 8.75 14.375 Z M 0 13.701172 C 0 13.375651 0.066732 13.064779 0.200195 12.768555 C 0.333659 12.472331 0.512695 12.211914 0.737305 11.987305 C 0.961914 11.762695 1.222331 11.583659 1.518555 11.450195 C 1.814779 11.316732 2.125651 11.25 2.451172 11.25 L 7.900391 11.25 C 7.809244 11.451823 7.722981 11.656901 7.641602 11.865234 C 7.560221 12.073568 7.490234 12.285156 7.431641 12.5 L 2.5 12.5 C 2.324219 12.5 2.161458 12.532553 2.011719 12.597656 C 1.861979 12.662761 1.730143 12.752279 1.616211 12.866211 C 1.502279 12.980144 1.41276 13.111979 1.347656 13.261719 C 1.282552 13.411459 1.25 13.574219 1.25 13.75 C 1.25 14.407553 1.359049 14.986979 1.577148 15.488281 C 1.795247 15.989584 2.091471 16.425781 2.46582 16.796875 C 2.840169 17.167969 3.273112 17.478842 3.764648 17.729492 C 4.256185 17.980143 4.777018 18.180338 5.327148 18.330078 C 5.877278 18.479818 6.438802 18.58724 7.011719 18.652344 C 7.584635 18.717447 8.138021 18.75 8.671875 18.75 C 8.847656 18.977865 9.033203 19.192709 9.228516 19.394531 C 9.423828 19.596354 9.635416 19.785156 9.863281 19.960938 C 9.674479 19.973959 9.488932 19.983725 9.306641 19.990234 C 9.124349 19.996744 8.938802 20 8.75 20 C 8.333333 20 7.908528 19.986979 7.475586 19.960938 C 7.042643 19.934896 6.612955 19.887695 6.186523 19.819336 C 5.760091 19.750977 5.340169 19.65983 4.926758 19.545898 C
|
|
|
|
|
</Viewbox>
|
|
|
|
|
<TextBlock VerticalAlignment="Center" Text="{x:Bind domain:Translator.Unsubscribe}" />
|
|
|
|
|
</StackPanel>
|
|
|
|
|
</HyperlinkButton>
|
2025-11-23 20:56:57 +01:00
|
|
|
|
|
|
|
|
|
2025-12-26 20:46:48 +01:00
|
|
|
<!-- S/MIME Signed Email Indicator -->
|
2025-11-23 20:56:57 +01:00
|
|
|
<HyperlinkButton
|
|
|
|
|
Grid.Column="2"
|
|
|
|
|
Margin="0,0,0,4"
|
2025-12-26 20:46:48 +01:00
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
Command="{x:Bind ViewModel.ShowSmimeSigningCertificateInfoCommand}"
|
2025-11-23 20:56:57 +01:00
|
|
|
ToolTipService.ToolTip="{x:Bind domain:Translator.SmimeSignedTooltip}"
|
2025-12-26 20:46:48 +01:00
|
|
|
Visibility="{x:Bind ViewModel.IsSmimeSigned, Mode=OneWay}">
|
|
|
|
|
<Grid
|
|
|
|
|
Width="Auto"
|
|
|
|
|
Height="Auto"
|
|
|
|
|
HorizontalAlignment="Stretch"
|
|
|
|
|
VerticalAlignment="Stretch">
|
|
|
|
|
<Viewbox
|
|
|
|
|
Width="16"
|
|
|
|
|
Height="16"
|
|
|
|
|
Margin="0,0,4,0">
|
|
|
|
|
<PathIcon Data="M15 18c.835.629 1.875 1.001 3 1.001a4.978 4.978 0 0 0 3-.999v3.246a.75.75 0 0 1-1.09.67l-.09-.055L18 20.591l-1.82 1.272a.75.75 0 0 1-1.172-.51l-.007-.105L15 18.001Zm4.25-14.996a2.75 2.75 0 0 1 2.745 2.582l.005.168.001 5.246a5.027 5.027 0 0 0-1.5-1.331L20.5 5.754a1.25 1.25 0 0 0-1.122-1.244l-.128-.006H4.75a1.25 1.25 0 0 0-1.244 1.122l-.006.128v9.5c0 .647.492 1.18 1.122 1.243l.128.007h8.92c.1.172.21.338.33.496v1.004H4.75a2.75 2.75 0 0 1-2.745-2.583L2 15.254v-9.5a2.75 2.75 0 0 1 2.582-2.745l.168-.005h14.5ZM18 10A4 4 0 1 1 18 18 4 4 0 0 1 18 10Zm-6.75 2.5a.75.75 0 0 1 .102 1.493L11.25 14h-4.5a.75.75 0 0 1-.102-1.493l.102-.007h4.5Zm6-5.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493L6.75 7h10.5Z" />
|
2025-11-23 20:56:57 +01:00
|
|
|
</Viewbox>
|
|
|
|
|
<muxc:InfoBadge
|
|
|
|
|
Width="8"
|
|
|
|
|
Height="8"
|
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
|
VerticalAlignment="Top"
|
2025-12-26 20:46:48 +01:00
|
|
|
Style="{ThemeResource CautionIconInfoBadgeStyle}"
|
|
|
|
|
Visibility="{x:Bind ViewModel.SmimeSignaturesInvalid, Mode=OneWay}" />
|
2025-11-23 20:56:57 +01:00
|
|
|
<muxc:InfoBadge
|
|
|
|
|
Width="8"
|
|
|
|
|
Height="8"
|
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
|
VerticalAlignment="Top"
|
2025-12-26 20:46:48 +01:00
|
|
|
Style="{ThemeResource SuccessIconInfoBadgeStyle}"
|
|
|
|
|
Visibility="{x:Bind ViewModel.SmimeSignaturesValid, Mode=OneWay}" />
|
2025-11-23 20:56:57 +01:00
|
|
|
</Grid>
|
|
|
|
|
</HyperlinkButton>
|
|
|
|
|
|
2025-12-26 20:46:48 +01:00
|
|
|
<!-- S/MIME Encrypted Email Indicator -->
|
|
|
|
|
<Viewbox
|
|
|
|
|
Grid.Column="3"
|
|
|
|
|
Width="16"
|
|
|
|
|
Height="16"
|
|
|
|
|
Margin="0,0,0,4"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
ToolTipService.ToolTip="{x:Bind domain:Translator.SmimeEncryptedTooltip}"
|
|
|
|
|
Visibility="{x:Bind ViewModel.IsSmimeEncrypted, Mode=OneWay}">
|
|
|
|
|
<PathIcon Data="M12 2a4 4 0 0 1 4 4v2h1.75A2.25 2.25 0 0 1 20 10.25v9.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75v-9.5A2.25 2.25 0 0 1 6.25 8H8V6a4 4 0 0 1 4-4Zm5.75 7.5H6.25a.75.75 0 0 0-.75.75v9.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75v-9.5a.75.75 0 0 0-.75-.75Zm-5.75 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Zm0-10A2.5 2.5 0 0 0 9.5 6v2h5V6A2.5 2.5 0 0 0 12 3.5Z" />
|
|
|
|
|
</Viewbox>
|
2025-09-29 11:16:14 +02:00
|
|
|
</Grid>
|
2026-04-03 19:50:52 +02:00
|
|
|
<coreControls:OperationCommandBar
|
|
|
|
|
x:Name="RendererCommandBar"
|
2025-09-29 11:16:14 +02:00
|
|
|
Grid.Row="1"
|
|
|
|
|
HorizontalContentAlignment="Stretch"
|
|
|
|
|
DefaultLabelPosition="Right"
|
2026-04-08 15:31:14 +02:00
|
|
|
IsAIActionsPaneToggleVisible="{x:Bind GetAiActionsToggleVisible(ViewModel.PreferencesService.IsAiActionsPanelHidden), Mode=OneWay}"
|
2026-04-03 19:50:52 +02:00
|
|
|
IsEditorThemeDark="{x:Bind ViewModel.IsDarkWebviewRenderer, Mode=TwoWay}"
|
|
|
|
|
IsEditorThemeToggleVisible="True"
|
2026-04-11 01:04:59 +02:00
|
|
|
IsPopOutButtonVisible="{x:Bind SupportsPopOut, Mode=OneWay}"
|
2026-04-03 19:50:52 +02:00
|
|
|
ItemInvokedCommand="{x:Bind ViewModel.OperationClickedCommand}"
|
2026-04-11 01:04:59 +02:00
|
|
|
MenuItems="{x:Bind ViewModel.MenuItems, Mode=OneWay}"
|
|
|
|
|
PopOutClicked="RendererCommandBar_PopOutClicked">
|
2026-04-03 19:50:52 +02:00
|
|
|
<coreControls:OperationCommandBar.Content>
|
2025-09-29 11:16:14 +02:00
|
|
|
<Grid Padding="0,5">
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
<ColumnDefinition Width="*" />
|
2026-04-03 11:56:25 +02:00
|
|
|
<ColumnDefinition Width="Auto" />
|
2025-09-29 11:16:14 +02:00
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
|
|
<controls:ImagePreviewControl
|
|
|
|
|
x:Name="ContactImage"
|
|
|
|
|
Width="36"
|
|
|
|
|
Height="36"
|
|
|
|
|
FontSize="16"
|
2026-02-25 01:41:48 +01:00
|
|
|
MailItemInformation="{x:Bind ViewModel.CurrentMailItemDisplayInformation, Mode=OneWay}" />
|
2025-09-29 11:16:14 +02:00
|
|
|
|
|
|
|
|
<Grid
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
Margin="12,0"
|
|
|
|
|
VerticalAlignment="Center">
|
|
|
|
|
<StackPanel Spacing="1">
|
|
|
|
|
<HyperlinkButton
|
|
|
|
|
Margin="-6,-2"
|
|
|
|
|
Padding="4,2"
|
|
|
|
|
Command="{Binding ElementName=root, Path=ViewModel.CopyClipboardCommand}"
|
|
|
|
|
CommandParameter="{x:Bind ViewModel.FromAddress, Mode=OneWay}"
|
|
|
|
|
FontWeight="SemiBold">
|
|
|
|
|
<Grid>
|
|
|
|
|
<TextBlock Visibility="{x:Bind helpers:XamlHelpers.StringToVisibilityConverter(ViewModel.FromName), Mode=OneWay}">
|
|
|
|
|
<Run Text="{x:Bind ViewModel.FromName, Mode=OneWay}" />
|
|
|
|
|
<Run Text="<" /><Run Text="{x:Bind ViewModel.FromAddress, Mode=OneWay}" /><Run Text=">" />
|
|
|
|
|
</TextBlock>
|
|
|
|
|
<TextBlock Visibility="{x:Bind helpers:XamlHelpers.StringToVisibilityReversedConverter(ViewModel.FromName), Mode=OneWay}">
|
|
|
|
|
<Run Text="{x:Bind ViewModel.FromAddress, Mode=OneWay}" />
|
|
|
|
|
</TextBlock>
|
|
|
|
|
</Grid>
|
|
|
|
|
</HyperlinkButton>
|
|
|
|
|
<TextBlock FontSize="12" Text="{x:Bind helpers:XamlHelpers.GetCreationDateString(ViewModel.CreationDate, ViewModel.PreferencesService.Prefer24HourTimeFormat), Mode=OneWay}" />
|
|
|
|
|
</StackPanel>
|
|
|
|
|
</Grid>
|
|
|
|
|
</Grid>
|
2026-04-03 19:50:52 +02:00
|
|
|
</coreControls:OperationCommandBar.Content>
|
|
|
|
|
</coreControls:OperationCommandBar>
|
2025-09-29 11:16:14 +02:00
|
|
|
|
|
|
|
|
<ScrollViewer
|
|
|
|
|
Grid.Row="2"
|
|
|
|
|
MaxHeight="150"
|
|
|
|
|
Margin="5,0">
|
|
|
|
|
<Grid>
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
|
|
<Grid ColumnSpacing="6">
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
Margin="0,1,0,0"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
Text="{x:Bind domain:Translator.ComposerTo}"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.ToItems.Count), Mode=OneWay}" />
|
|
|
|
|
|
|
|
|
|
<ItemsControl
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
ItemTemplate="{StaticResource InternetAddressTemplate}"
|
|
|
|
|
ItemsSource="{x:Bind ViewModel.ToItems, Mode=OneWay}"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.ToItems.Count), Mode=OneWay}">
|
|
|
|
|
<ItemsControl.ItemsPanel>
|
|
|
|
|
<ItemsPanelTemplate>
|
|
|
|
|
<customcontrols:CustomWrapPanel />
|
|
|
|
|
</ItemsPanelTemplate>
|
|
|
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
|
</ItemsControl>
|
|
|
|
|
</Grid>
|
|
|
|
|
<Grid Grid.Row="1" ColumnSpacing="6">
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
<TextBlock
|
|
|
|
|
Margin="0,1,0,0"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
Text="Cc:"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.CcItems.Count), Mode=OneWay}" />
|
|
|
|
|
<ItemsControl
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
ItemTemplate="{StaticResource InternetAddressTemplate}"
|
|
|
|
|
ItemsSource="{x:Bind ViewModel.CcItems, Mode=OneWay}"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.CcItems.Count), Mode=OneWay}">
|
|
|
|
|
<ItemsControl.ItemsPanel>
|
|
|
|
|
<ItemsPanelTemplate>
|
|
|
|
|
<customcontrols:CustomWrapPanel />
|
|
|
|
|
</ItemsPanelTemplate>
|
|
|
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
|
</ItemsControl>
|
|
|
|
|
</Grid>
|
|
|
|
|
<Grid Grid.Row="2" ColumnSpacing="6">
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
Margin="0,1,0,0"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
Text="Bcc:"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.BccItems.Count), Mode=OneWay}" />
|
|
|
|
|
|
|
|
|
|
<ItemsControl
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
ItemTemplate="{StaticResource InternetAddressTemplate}"
|
|
|
|
|
ItemsSource="{x:Bind ViewModel.BccItems, Mode=OneWay}"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.BccItems.Count), Mode=OneWay}">
|
|
|
|
|
<ItemsControl.ItemsPanel>
|
|
|
|
|
<ItemsPanelTemplate>
|
|
|
|
|
<customcontrols:CustomWrapPanel />
|
|
|
|
|
<!--<toolkit:WrapPanel Orientation="Horizontal" />-->
|
|
|
|
|
</ItemsPanelTemplate>
|
|
|
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
|
</ItemsControl>
|
|
|
|
|
</Grid>
|
|
|
|
|
</Grid>
|
|
|
|
|
</ScrollViewer>
|
|
|
|
|
|
2026-04-03 11:56:25 +02:00
|
|
|
<coreControls:AiActionsPanel
|
|
|
|
|
x:Name="ReaderAiActionsPanel"
|
|
|
|
|
Grid.Row="3"
|
|
|
|
|
Margin="0,8,0,0"
|
|
|
|
|
AvailableActions="Translate, Summarize"
|
|
|
|
|
HtmlHost="{x:Bind}"
|
2026-04-08 15:31:14 +02:00
|
|
|
Visibility="{x:Bind GetAiActionsPanelVisibility(RendererCommandBar.IsAIActionsEnabled, ViewModel.PreferencesService.IsAiActionsPanelHidden), Mode=OneWay}" />
|
2026-04-03 11:56:25 +02:00
|
|
|
|
2025-09-29 11:16:14 +02:00
|
|
|
<!-- Attachments -->
|
2026-04-03 11:56:25 +02:00
|
|
|
<Grid Grid.Row="4">
|
2025-09-29 11:16:14 +02:00
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
<ListView
|
|
|
|
|
x:Name="AttachmentsListView"
|
|
|
|
|
Grid.Row="3"
|
|
|
|
|
Height="55"
|
|
|
|
|
x:Load="{x:Bind helpers:XamlHelpers.CountToBooleanConverter(ViewModel.Attachments.Count), Mode=OneWay}"
|
|
|
|
|
IsItemClickEnabled="True"
|
|
|
|
|
ItemClick="AttachmentClicked"
|
|
|
|
|
ItemTemplate="{StaticResource FileAttachmentTemplate}"
|
|
|
|
|
ItemsSource="{x:Bind ViewModel.Attachments, Mode=OneWay}"
|
|
|
|
|
SelectionMode="None">
|
|
|
|
|
<ItemsControl.ItemsPanel>
|
|
|
|
|
<ItemsPanelTemplate>
|
|
|
|
|
<customcontrols:CustomWrapPanel />
|
|
|
|
|
</ItemsPanelTemplate>
|
|
|
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
|
</ListView>
|
|
|
|
|
|
|
|
|
|
<HyperlinkButton
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
Command="{x:Bind ViewModel.SaveAllAttachmentsCommand}"
|
|
|
|
|
Content="{x:Bind domain:Translator.Reader_SaveAllAttachmentButtonText}"
|
|
|
|
|
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverterWithThreshold(ViewModel.Attachments.Count, 1), Mode=OneWay}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
|
|
<InfoBar
|
|
|
|
|
x:Name="ImageLoadingDisabledMessage"
|
2026-04-03 11:56:25 +02:00
|
|
|
Grid.Row="5"
|
2025-09-29 11:16:14 +02:00
|
|
|
HorizontalContentAlignment="Stretch"
|
|
|
|
|
x:Load="{x:Bind ViewModel.IsImageRenderingDisabled, Mode=OneWay}"
|
|
|
|
|
IsOpen="True"
|
|
|
|
|
Message="{x:Bind domain:Translator.ImageRenderingDisabled}"
|
|
|
|
|
Severity="Warning">
|
|
|
|
|
<InfoBar.ActionButton>
|
|
|
|
|
<Button
|
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
|
Command="{x:Bind ViewModel.ForceImageLoadingCommand}"
|
|
|
|
|
Content="{x:Bind domain:Translator.Buttons_EnableImageRendering}" />
|
|
|
|
|
</InfoBar.ActionButton>
|
|
|
|
|
</InfoBar>
|
|
|
|
|
|
|
|
|
|
<ProgressBar
|
|
|
|
|
x:Name="DownloadingProgressBar"
|
2026-04-03 11:56:25 +02:00
|
|
|
Grid.Row="4"
|
2025-09-29 11:16:14 +02:00
|
|
|
Margin="12,1"
|
|
|
|
|
HorizontalAlignment="Stretch"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
x:Load="{x:Bind ViewModel.ShouldDisplayDownloadProgress, Mode=OneWay}"
|
|
|
|
|
IsIndeterminate="{x:Bind ViewModel.IsIndetermineProgress, Mode=OneWay}"
|
|
|
|
|
Value="{x:Bind ViewModel.CurrentDownloadPercentage, Mode=OneWay}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
</Border>
|
|
|
|
|
|
|
|
|
|
<Border
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
Background="{ThemeResource WinoContentZoneBackgroud}"
|
|
|
|
|
BorderBrush="{StaticResource CardStrokeColorDefaultBrush}"
|
|
|
|
|
BorderThickness="1"
|
2025-10-03 15:59:37 +02:00
|
|
|
CornerRadius="{ThemeResource OverlayCornerRadius}">
|
|
|
|
|
<Grid Margin="1" CornerRadius="{ThemeResource OverlayCornerRadius}">
|
2026-02-05 12:48:38 +01:00
|
|
|
|
2025-09-29 11:16:14 +02:00
|
|
|
<Grid Background="White" Visibility="{x:Bind IsDarkEditor, Converter={StaticResource ReverseBooleanToVisibilityConverter}, Mode=OneWay}" />
|
|
|
|
|
|
2025-12-31 11:08:30 +01:00
|
|
|
<WebView2 x:Name="Chromium" NavigationStarting="WebViewNavigationStarting">
|
|
|
|
|
<WebView2.KeyboardAccelerators>
|
|
|
|
|
<KeyboardAccelerator Key="Escape" Invoked="EscapeInvoked" />
|
|
|
|
|
</WebView2.KeyboardAccelerators>
|
|
|
|
|
</WebView2>
|
2025-09-29 11:16:14 +02:00
|
|
|
|
|
|
|
|
<ProgressRing
|
|
|
|
|
Width="50"
|
|
|
|
|
Height="50"
|
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
IsActive="{x:Bind ViewModel.ShouldDisplayDownloadProgress, Mode=OneWay}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
</Border>
|
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
|
|
</abstract:MailRenderingPageAbstract>
|