我创建了一个带有滚动条的文本框,应始终启用该滚动条(在WORDWRAP上!) 当然,默认情况下 - 它仅在需要时启用(文本长度>比文本框的宽度更长)。
出于某种原因,在单行文本框中 - 滚动条总是看起来已启用(当不需要时)。 它不会发生在多行文本框中。
知道为什么吗?
这是代码:
<TextBox x:Name="_textBox" Visibility="Visible" xml:space="preserve"
Background="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=Background}"
Foreground="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=Foreground}"
FontFamily="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=FontFamily}"
BorderBrush="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=BorderBrush}"
KeyUp="_textBox_KeyUp"
PreviewTextInput="_textBox_PreviewTextInput"
DataObject.Pasting="_textBox_Pasting"
VerticalContentAlignment="Top"
PreviewKeyDown="TextBox_OnPreviewKeyDown"
TextWrapping="Wrap"
ScrollViewer.VerticalScrollBarVisibility="Visible"
/>
答案 0 :(得分:0)
将String htmlText = html.ToString();
Document document = new Document();
string filePath = HostingEnvironment.MapPath("~/Content/Pdf/");
PdfWriter.GetInstance(document, new FileStream(filePath + "\\pdf-"+Name+".pdf", FileMode.Create));
document.Open();
iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
FontFactory.Register(Path.Combine(_webHelper.MapPath("~/App_Data/Pdf/arial.ttf")), "Garamond"); // just give a path of arial.ttf
StyleSheet css = new StyleSheet();
css.LoadTagStyle("body", "face", "Garamond");
css.LoadTagStyle("body", "encoding", "Identity-H");
css.LoadTagStyle("body", "size", "12pt");
hw.SetStyleSheet(css);
hw.Parse(new StringReader(htmlText));
设置为VerticalScrollBarVisibility
可确保滚动条始终可见,即使内容不超出界限。
相反,将其设置为Visible
,这将更改行为,以便滚动条仅在内容超出边界时可见。 (文本变得太大,无法显示Auto
)
这是一个非常简单的例子:
TextBox
默认情况下,<TextBox Text="..."
TextWrapping="Wrap"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
无论如何都设置为VerticalScrollBarVisibility
,因此您可以完全删除此行,因为它不需要。
<强> TL; DR 强>
删除Auto
。