Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有富文本、无换行和可选文本的WPF控件_C#_Wpf_Xaml - Fatal编程技术网

C# 具有富文本、无换行和可选文本的WPF控件

C# 具有富文本、无换行和可选文本的WPF控件,c#,wpf,xaml,C#,Wpf,Xaml,我需要一个能够选择里面显示的文本(只读)的控件,但我还需要能够用粗体和斜体格式化文本,因为它是期刊引用。此外,我希望控件能够根据文本或内容调整大小(拉伸)。下面是一个例子: 儿童和家庭行为疗法26.1(2004年) 我能得到的最接近的例子是下面的RichTextBox文本块示例也很接近,但不允许使用字体样式(粗体、斜体等) 当前RichTextBox解决方案 richTextBox1.HorizontalScrollBarVisibility = ScrollBarVisibility.

我需要一个能够选择里面显示的文本(只读)的控件,但我还需要能够用粗体和斜体格式化文本,因为它是期刊引用。此外,我希望控件能够根据文本或内容调整大小(拉伸)。下面是一个例子:

儿童和家庭行为疗法26.1(2004年)

我能得到的最接近的例子是下面的
RichTextBox
<代码>文本块示例也很接近,但不允许使用字体样式(粗体、斜体等)

当前RichTextBox解决方案

    richTextBox1.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
    richTextBox1.Document.PageWidth = 1000;
这不起作用的原因:期刊可以有很长的名称,加上描述,很容易到达页面的末尾,导致内容无论如何都要换行。相反,没有描述的简短命名日志仍然有一个滚动条,导致大量空白

当前文本块/文本框解决方案

    <TextBox Background="Transparent"
     BorderThickness="0"
     Text="{Binding Text, Mode=OneWay}"
     IsReadOnly="True"
     TextWrapping="NoWrap" />

这不起作用的原因:我要么使用默认的
文本块
而无法选择文本(用户应该能够复制粘贴),要么使用此
文本框
绑定而失去样式设置功能


我还是WPF的新手,对如何编辑一些控件知之甚少,例如使用
OverridesDefaultStyle
ControlTemplate
等的按钮。。我只是找不到一个具有我需要的三个属性的控件,也找不到一种可以自定义控件以实现我想要的功能的方法。有什么想法吗?

我想买一个定制的
TextBlock
RichTextBox
似乎有些过分了

1) 卷轴和大小

<ScrollViewer CanContentScroll="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
      <ns:SelectableTextBlock TextWrapping="NoWrap" x:Name="stb" TextSelected="stb_TextSelected"/>
</ScrollViewer>

这样可以确保长文本中有滚动条,短文本中没有滚动条。看

2) 选择和复制/粘贴。看,尤其是。表示对该示例的修改,自定义可选的
TextBlock
,带有来回突出显示的选项


3) 样式和绑定
InlineCollection
。将引文模型绑定到
TextBlock.Inlines
,like,or.

”(截至2015年7月):VS2015 RC允许wordwrap=false“如果您不需要文字包装,那么为什么您有TextWrapping=“wrap”?谢谢Empereur Aiman,我确实看到了这一点,但RC是什么?我使用的是VS2015,我在所有三个控件上都找了一个“wordwrap”属性,但它没有被识别。飞盘,这是我用作参考的另一个问题中的一个例子。如果我要实现它,我会将其设置为无包装。我将更改以避免进一步混淆,很抱歉,我也找不到它。也许你可以和那篇文章的作者澄清一下。这很有效,谢谢!Rextester示例与我需要的非常接近,不过我对其进行了调整,使文本保持选中状态,并且不会在选中时自动复制。