注意:我在发布的问题中有WinForms标签之前回答了这个问题。(我实际上是根据他在这里的回复添加的。)不过,如果您使用的是 WPF,这就是您要这样做的方式......
最简单的方法是将 ControlTemplate 替换为您的内部实现。换句话说,您正在替换 RichTextBox 控件的“视觉”部分,但您仍然是 RichTextBox 控件。
例如,这就是我如何替换 TextBox 的视觉效果以完全去除所有 chrome 并使其只剩下一个简单的边框。但它仍然是一个具有所有属性等的完整文本框。
再次,查找控制模板。您可能还想搜索“Lookless Controls”。
<Style TargetType="{x:Type glc:EditableTextBlock2}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="MinWidth" Value="20" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type glc:EditableTextBlock2}">
<Border Name="Bd"
SnapsToDevicePixels="True"
BorderThickness="1"
BorderBrush="{TemplateBinding Border.BorderBrush}"
Background="{TemplateBinding Border.Background}" >
<ScrollViewer Name="PART_ContentHost"
SnapsToDevicePixels="True"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>