增强打印预览功能,新增离线打印功能,新增缩放控制按钮以提升用户体验。优化打印数据准备逻辑,支持实时预览缩放,确保打印效果的一致性。同时,重构相关视图和服务以增强系统的可维护性和扩展性。

This commit is contained in:
geht
2026-05-14 11:25:17 +08:00
parent 8bcc34aee0
commit 296bc2a4b2
7 changed files with 702 additions and 109 deletions

View File

@@ -1057,42 +1057,76 @@
Margin="8,0,10,0"
VerticalAlignment="Center"
Foreground="{DynamicResource SecondaryTextBrush}"/>
<ToggleButton Grid.Column="2"
IsChecked="{Binding IsPrintPreviewExpanded, Mode=TwoWay}"
MinWidth="56"
Height="24"
Background="Transparent"
BorderThickness="1"
Padding="8,0"
FocusVisualStyle="{x:Null}"
Cursor="Hand"
VerticalAlignment="Center">
<ToggleButton.Template>
<ControlTemplate TargetType="ToggleButton">
<Border Background="{TemplateBinding Background}"
BorderBrush="{DynamicResource BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="2"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</ToggleButton.Template>
<TextBlock FontSize="12"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="展开"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType=ToggleButton}}" Value="True">
<Setter Property="Text" Value="折叠"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</ToggleButton>
<StackPanel Grid.Column="2"
Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal"
Margin="0,0,8,0"
VerticalAlignment="Center"
Visibility="{Binding IsPrintPreviewExpanded, Converter={StaticResource Boolean2VisibilityConverter}}">
<Button Content="-"
Width="24"
Height="24"
Padding="0"
FontSize="12"
Command="{Binding ZoomOutPrintPreviewCommand}"
Style="{StaticResource ButtonDefault}"
ToolTip="缩小预览"/>
<Button Content="{Binding PrintPreviewZoomText}"
MinWidth="56"
Height="24"
Margin="4,0,4,0"
Padding="10,0"
FontSize="11"
Command="{Binding ResetPrintPreviewZoomCommand}"
Style="{StaticResource ButtonDefault}"
ToolTip="重置为 70%"/>
<Button Content="+"
Width="24"
Height="24"
Padding="0"
FontSize="12"
Command="{Binding ZoomInPrintPreviewCommand}"
Style="{StaticResource ButtonDefault}"
ToolTip="放大预览"/>
</StackPanel>
<ToggleButton IsChecked="{Binding IsPrintPreviewExpanded, Mode=TwoWay}"
MinWidth="56"
Height="24"
Background="Transparent"
BorderThickness="1"
Padding="8,0"
FocusVisualStyle="{x:Null}"
Cursor="Hand"
VerticalAlignment="Center">
<ToggleButton.Template>
<ControlTemplate TargetType="ToggleButton">
<Border Background="{TemplateBinding Background}"
BorderBrush="{DynamicResource BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="2"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</ToggleButton.Template>
<TextBlock FontSize="12"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="展开"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType=ToggleButton}}" Value="True">
<Setter Property="Text" Value="折叠"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</ToggleButton>
</StackPanel>
</Grid>
</Border>
<Border BorderBrush="{DynamicResource BorderBrush}"