我有一个功能,可以将布局打印到PDF文件(使用PDFSharp
库)。
我的问题是我的Grid
包括一个ScrollViewer
。
问题在于ScrollViewer
在PDF文件中显然不可滚动。
我有办法改变吗?
microsoft.Win32.SaveFileDialog dlg = new microsoft.Win32.SaveFileDialog();
dlg.FileName = "NHF Tool";
dlg.DefaultExt = ".pdf";
dlg.Filter = "PDF (.pdf)|*.pdf";
Nullable<bool> result = dlg.ShowDialog();
try
{
if (result == true)
{
MemoryStream lMemoryStream = new MemoryStream();
Package package = Package.Open(lMemoryStream,FileMode.Create);
XpsDocument doc = new XpsDocument(package);
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc);
writer.Write(MainCanvas);
doc.Close();
package.Close();
var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream);
PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc,dlg.FileName,0);
}
}
catch (System.IO.IOException)
{
MessageBox.Show("TEMP");
}
<Window x:Class="NHF_Tool.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:NHF_Tool"
Title="Test" Height="800" Width="1525">
<Grid Background="Gainsboro">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Header="Test1" Margin="10">
<Grid>
<Button Content="Sample content" Margin="20"/>
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Header="Test2" Margin="10">
<ScrollViewer x:Name="ScrollViewer">
<StackPanel Orientation="Vertical">
<Rectangle Fill="LightYellow" Height="300" Margin="20"/>
<TextBox HorizontalAlignment="Center" Grid.Row="1" Text="TextBox"/>
</StackPanel>
</ScrollViewer>
</GroupBox>
</Grid>
</Window>