有没有办法在流文档或system.windows.control RichTextBox(wpf)中创建悬挂缩进?如果它将在流文档中工作,当我将其加载到RichTextBox中以显示它将保持它的形式?
只是想知道是否有办法在使用流文档的打印对话框上设置打印文档方向.
例如
var document = userControl.Content as FlowDocument;
var printDialog = new PrintDialog();
if (printDialog.ShowDialog() == true)
{
var paginator = ((IDocumentPaginatorSource) document).DocumentPaginator;
paginator.PageSize = new Size(userControl.Width, userControl.Height);
//Set Orientation Landscape .....
printDialog.PrintDocument(paginator, PrintDescription);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用来自wpf的flowdocument使用c#2010制作小型标签打印机.
我生成这样的标签:
FlowDocument doc = new FlowDocument();
Paragraph p = new Paragraph();
foreach (Labels label in labels)
{
p.Inlines.Add(label.name+"\n");
p.Inlines.Add(label.age + "\n");
p.Inlines.Add(label.price + "\n");
p.Inlines.Add( "\n");
doc.Blocks.Add(p);
}
Run Code Online (Sandbox Code Playgroud)
它工作正常但是当生成更多标签然后适合一页时,标签就会分开.例如,该名称在Page1和年龄,价格在Page2上.
现在我问你是否有可能阻止标签被拆分.
我希望能够删除FlowDocument的各种内联元素之间的空白.下面是一个非常具体的例子,只是为了解决问题.所需的输出是"Hello World?" 但是会发生什么是"Hello World?".在这种情况下 "?" 是一个可点击的按钮.
我搜索了一段时间没有成功.我尝试了所有形式的打击垫/边距调整,但它们只能增加间距.我开始相信这个空间是FlowDocument元素边界所固有的.这似乎是一系列限制.
<RichTextBox>
<FlowDocument>
<Paragraph Margin="0">
<Run>
Hello World
</Run>
<InlineUIContainer>
<Button Click="ButtonClick">?</Button>
</InlineUIContainer>
</Paragraph>
</FlowDocument>
</RichTextBox>
Run Code Online (Sandbox Code Playgroud) 我有一个带有 RichTextBox 和 DocumentViewer 的应用程序(放置在 TabControl 中),我想制作类似“热预览”的内容。我已将DocumentViewer.Document财产绑定到RichTextBox.Document
捆绑:
<DocumentViewer Document="{Binding Document, Converter={StaticResource FlowDocumentToPaginatorConverter}, ElementName=mainRTB, Mode=OneWay}" />
这是转换器代码:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
FlowDocument d = value as FlowDocument;
DocumentPaginator pagin = ((IDocumentPaginatorSource)d).DocumentPaginator;
FixedDocumentSequence result = null;
Size s = new Size(793.700787402, 1122.519685039);
pagin.PageSize = s;
using (MemoryStream ms = new MemoryStream())
{
TextRange tr = new TextRange(d.ContentStart, d.ContentEnd);
tr.Save(ms, DataFormats.XamlPackage);
Package p = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite);
Uri uri = new Uri(@"memorystream://doc.xps"); …Run Code Online (Sandbox Code Playgroud) 您好,我正在使用 WPF 并使用 MVVM 模式。所以我的问题是,我试图将 RichTextBox 的选定文本绑定到 ViewModel 中的属性,但无法绑定 Selection 属性。
那么我该怎么做呢?
我认为将 RichTextBox 的 Selection 属性绑定到 ViewModel 中的属性是更好地将效果和装饰应用于文本的方法。
如果有人知道更好的方法来了解 ViewModel 中 RichTextBox 的选定文本,请告诉我。我开始学习 FlowDocuments 并使用 RichTextBox,所以这就是我有点迷失的原因。
提前致谢!
我有一个 WPF 应用程序。在一个窗口中,我想显示一些这样的文本:

文本将分为 2 列。我可以用 FlowDocumentReader 做到这一点。问题是,我不想显示底部的工具栏(具有缩放、翻页、搜索等功能的工具栏)。我尝试使用 FlowDocumentScrollViewer 而不是 FlowDocumentReader,文本不再显示在 2 列中。
如何删除底部的工具栏?
我需要显示带有字体大小滑块和搜索按钮的FlowDocument.Scroll查看模式下的FlowDocumentReader正是我想要的,除了它总是显示垂直滚动条,而我只需要在它启用时显示它(内部ReaderScrollViewer的VerticalScrollBarVisibility是可见的,但我需要自动).我怎样才能实现这样的观点?
谢谢.
例如,如果我有如下代码,则两个按钮都被禁用:
<RichTextBox>
<FlowDocument>
<BlockUIContainer>
<Button Content="!"/>
</BlockUIContainer>
<Paragraph>
<InlineUIContainer>
<Button Content="!"/>
</InlineUIContainer>
</Paragraph>
</FlowDocument>
</RichTextBox>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样,或者我可以做些什么来防止这种情况,显然禁用的按钮不是很有用,因此可以帮助解决此问题。
编辑:事实证明FlowDocument由于某种原因而被禁用,但是我还没有找到一种方法来重新启用它,因为它IsEnabled="False"立即变回了...
我有一些正在从数据库中读取的文本.此文本是xaml节对象的字符串表示形式.此文本将根据组合框中的选择而有所不同.以下是一些文字示例:
<Section xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml:space="preserve" TextAlignment="Left" LineHeight="Auto" IsHyphenationEnabled="False" xml:lang="en-us" FlowDirection="LeftToRight" NumberSubstitution.CultureSource="User" NumberSubstitution.Substitution="AsCulture" FontFamily="Verdana" FontStyle="Normal" FontWeight="Normal" FontStretch="Normal" FontSize="11" Foreground="#FF000000" Typography.StandardLigatures="True" Typography.ContextualLigatures="True" Typography.DiscretionaryLigatures="False" Typography.HistoricalLigatures="False" Typography.AnnotationAlternates="0" Typography.ContextualAlternates="True" Typography.HistoricalForms="False" Typography.Kerning="True" Typography.CapitalSpacing="False" Typography.CaseSensitiveForms="False" Typography.StylisticSet1="False" Typography.StylisticSet2="False" Typography.StylisticSet3="False" Typography.StylisticSet4="False" Typography.StylisticSet5="False" Typography.StylisticSet6="False" Typography.StylisticSet7="False" Typography.StylisticSet8="False" Typography.StylisticSet9="False" Typography.StylisticSet10="False" Typography.StylisticSet11="False" Typography.StylisticSet12="False" Typography.StylisticSet13="False" Typography.StylisticSet14="False" Typography.StylisticSet15="False" Typography.StylisticSet16="False" Typography.StylisticSet17="False" Typography.StylisticSet18="False" Typography.StylisticSet19="False" Typography.StylisticSet20="False" Typography.Fraction="Normal" Typography.SlashedZero="False" Typography.MathematicalGreek="False" Typography.EastAsianExpertForms="False" Typography.Variants="Normal" Typography.Capitals="Normal" Typography.NumeralStyle="Normal" Typography.NumeralAlignment="Normal" Typography.EastAsianWidths="Normal" Typography.EastAsianLanguage="Normal" Typography.StandardSwashes="0" Typography.ContextualSwashes="0" Typography.StylisticAlternates="0"><Paragraph><Run>Hello World </Run></Paragraph></Section>
Run Code Online (Sandbox Code Playgroud)
我需要采取此文本并在应用程序的控件中正确格式化显示它.我相信,为了做到这一点,我需要一个FlowDocumentViewer(我正在使用FlowDocumentScrollViewer).
我无法弄清楚的是如何将文本转换为流文档,以便我可以将它(绑定它)与文档查看器关联(我在此处是一个菜鸟).
有人可以帮忙吗?
flowdocument ×10
wpf ×10
c# ×5
richtextbox ×5
binding ×1
data-binding ×1
indentation ×1
printdialog ×1
printing ×1
scroll ×1
wpf-controls ×1
xaml ×1