WPF でFlowDocumentを使ってデータを表示させようとしています。
表示は出来ているのですが、表示を任意のところで改ページさせたいと考えていますが、
どうやったら任意の個所でページを切り替えられますか?
C#
1<Window x:Class="ReportLite3.Views.PrevReportWindow" 2 : 3 4 <Grid> 5 <FlowDocumentReader Name="flowDoc" MinZoom="50" MaxZoom="300" Zoom="120" ZoomIncrement="5" /> 6 </Grid> 7</Window> 8 9ビハインド側 10 FlowDocument fd = new FlowDocument(); 11 var p = new Paragraph(); 12 p.FontSize = 16; 13 foreach (var txt in Model._report) 14 { 15 Section sec = new Section(); 16 p.Inlines.Add(txt.データ1); 17 18 LineBreak lb = new LineBreak(); 19 p.Inlines.Add(lb); 20 p.Inlines.Add(txt.データ2); 21 } 22 23 fd.Blocks.Add(p); 24 this.flowDoc.Document = fd;
または、
C#
1<Window x:Class="ReportLite3.Views.PrevReportWindow" 2 : 3 4 <Grid> 5 <FlowDocumentReader> 6 <FlowDocument> 7 <Paragraph FontFamily="Georgia" Background="Beige"> 8 <TextBlock Text="{Binding Path=Shindan}" Height="70" /> 9 </Paragraph> 10 11 <Paragraph FontFamily="Georgia" Background="Bisque"> 12 <TextBlock Text="{Binding Shoken}" Height="120" /> 13 </Paragraph> 14 </FlowDocument> 15 </FlowDocumentReader> 16 </Grid> 17</Window>
上記で表示のテストをしてみましたが、改ページする方法がわかりません。
教えてください。
Windows10 VS2015 C# WPF
追加
WPF
1 public partial class PrevReportWindow : Window 2 { 3 public string shindan; 4 public string shoken; 5 6 private void Window_Loaded(object sender, RoutedEventArgs e) 7 { 8 9 Model._report = (FlowDocumentReport)this.Resources["report"]; 10 Model._shindan = shindan; 11 Model._shoken = shoken; 12 Model.dispData(); 13 14 15 16 17 18 public class FlowDocumentReport : ObservableCollection<FlowDocumentModel> 19 { 20 21 } 22 23 24 public class PrevReport 25 { 26 public string shindan; // { get; set; } 27 public string shoken; // { get; set; } 28 } 29 30 public class FlowDocumentModel : INotifyPropertyChanged 31 { 32 public string _shindan; 33 public string _shoken; 34 public PrevReport report = new PrevReport(); 35 public FlowDocumentReport _report; 36 37 public event PropertyChangedEventHandler PropertyChanged; 38 public FlowDocumentModel() 39 { 40 PropertyChanged += (sender, e) => { }; 41 } 42 43 public void NotifyPropertyChanged(string propertyName) 44 { 45 if (PropertyChanged != null) 46 { 47 PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 48 } 49 } 50 51 public void dispData() 52 { 53 _report.Add(new FlowDocumentModel() 54 { 55 Shindan = GetHistoryData(HistoryShin, k), 56 Shoken = GetHistoryData(HistorySho, k) 57 }); 58 } 59 public string Shindan 60 { 61 get { return report.shindan; } 62 set 63 { 64 if (value != report.shindan) 65 { 66 report.shindan = value; 67 NotifyPropertyChanged("Shindan"); 68 } 69 } 70 } 71 public string Shoken 72 { 73 get { return report.shoken; } 74 set 75 { 76 if (value != report.shoken) 77 { 78 report.shoken = value; 79 NotifyPropertyChanged("Shoken"); 80 } 81 } 82 } 83}
改ページするならこっちじゃないの?
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.flowdocumentpageviewer?view=net-5.0
回答1件
あなたの回答
tips
プレビュー