Wpf 在TabControl中滚动FlowDocument
我有这个XAML片段:Wpf 在TabControl中滚动FlowDocument,wpf,scroll,tabcontrol,flowdocument,Wpf,Scroll,Tabcontrol,Flowdocument,我有这个XAML片段: <!-- ... --> <TabControl> <TabItem> <!-- ... --> </TabItem> <TabItem Header="Source" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True">
<!-- ... -->
<TabControl>
<TabItem>
<!-- ... -->
</TabItem>
<TabItem Header="Source" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True">
<FlowDocumentScrollViewer>
<FlowDocument>
<Paragraph>
<TextBlock
Text="{Binding Path=CurrentObject.Source}"
FontFamily="Consolas,Courier,Segoe UI"
FontSize="12"
/>
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</TabItem>
</TabControl>
<!-- ... -->
问题是流文档没有水平滚动。我一直无法做到这一点
有什么线索吗
提前谢谢。这里有几件事。第一个是,在段落中使用控件的功能不同于为适合您的流程文档而包装的运行 第二,FlowDocument将适合您的FlowDocumentScrollViewer。如果像以前那样向其添加控件,它将适合FlowDocument和查看器的宽度,并且文本将超出TextBlock边框。这意味着您的文档不需要滚动条;您的文本块将被删除。通过将TextBlock的TextWrapping属性设置为Wrap,可以看到这一点 要解决此问题,请将PageWidth设置为超出查看器宽度限制的值,如下所示:
<FlowDocumentScrollViewer>
<FlowDocument PageHeight="1056"
PageWidth="816">
<Paragraph>
<TextBlock
Text="{Binding Path=CurrentObject.Source}"
FontFamily="Consolas,Courier,Segoe UI"
FontSize="12"
/>
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
或绑定到您的文本块:
<FlowDocumentScrollViewer>
<FlowDocument PageHeight="1056"
PageWidth="{Binding ElementName=Part, Path=ActualWidth}">
<Paragraph>
<TextBlock
Text="{Binding Path=CurrentObject.Source}"
FontFamily="Consolas,Courier,Segoe UI"
FontSize="12"
/>
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
最后一件事是FlowDocumentScrollViewer有它自己的HorizontalScrollBarVisibility属性,您可以使用它(除非某些样式问题阻止它)