不应该启用文本框的滚动条

时间:2015-11-25 09:35:24

标签: c# wpf textbox scrollbar

我创建了一个带有滚动条的文本框,应始终启用该滚动条(在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"
             />

1 个答案:

答案 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