【问题标题】:How to hide part of text in a richtextbox or textbox using WPF?如何使用 WPF 隐藏富文本框或文本框中的部分文本?
【发布时间】:2013-07-18 00:12:35
【问题描述】:

我想在 wpf 中寻求一种方法,在运行时使用 C# 隐藏和取消隐藏富文本框或文本框中的某些特定行,同时使其余行可见。我也不想成为可见线和不可见线之间的可见空间。我有一个选择线条然后将字体大小更改为 0.01 的想法,但它并不是那么多的优雅。 提前致谢。

【问题讨论】:

  • 你可以有一个包含所有文本的字符串,并过滤掉你想要显示的文本框的部分。或者更好的是,一组行。

标签: c# wpf text-editor


【解决方案1】:

默认情况下,您只能通过分别更改 Text 或 RichText 属性的值来隐藏和显示 WPF TextBox 或 RichTextBox 中的某些文本。例如,如果您有文本“玛丽有一只小羊羔,他的羊毛像雪一样白”,并且想要隐藏文本“谁的羊毛像雪一样白”,您将不得不解析文本并删除或添加“谁的羊毛是使用代码在 Text 或 RichText 中的正确位置放置“像雪一样白”。

听起来您只是想根据某些条件修改布局。在这种情况下,最好将这些行拆分为单独的文本框,并在某些条件存在时将这些文本框的可见性设置为折叠,否则将它们设置为可见。

如果您使用的是 TextBox,您将需要一个外部边框来帮助您匹配 TextBox 的样式,然后您可以将您隐藏的文本框的 BorderBrush 和 Background 设置为透明,这样它看起来就像一个单独的 TextBox。

<Border
    BorderThickness="1"
    BorderBrush="Black"
    Background="White">
    <StackPanel>
        <TextBox
            Text="Mary had a little lamb "
            BorderBrush="Transparent"
            Background="Transparent" />

        <!-- Set the Visisibility Property of this TextBox in code to show or hide it -->
        <TextBox
            Name="ConditionalTextBoxLine"
            Visibility="Visible"
            Text="Who's fleece was white as snow"
            BorderBrush="Transparent"
            Background="Transparent" />
    </StackPanel>
</Border>

【讨论】:

    猜你喜欢
    • 2012-01-05
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多