我在表单上有一个RichTextBox:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RichTextBox x:Name="TextArea"/>
</Grid>
</Window>
在运行时,我使用以下代码添加带边框的段落:
Paragraph p1 = new Paragraph();
Inline hello = new Run("Hello") { FontSize = 14 };
Inline world = new Run("World") { FontSize = 20, Foreground = new SolidColorBrush(Colors.Red) };
Inline helloWorld = new Run(Environment.NewLine + "Hello World");
p1.Inlines.Add(hello);
p1.Inlines.Add(world);
p1.Inlines.Add(helloWorld);
p1.BorderThickness = new Thickness(1);
p1.BorderBrush = new SolidColorBrush(Colors.SkyBlue);
p1.Padding = new Thickness(2);
this.TextArea.Document.Blocks.Add(p1);
结果如下:
但我希望它是这样的:
有没有简单的方法来设置段落宽度(或外部框架大小)等于其内容?
答案 0 :(得分:0)
你可以这样做,这样边框将是不可见的
1.XML
<Grid>
<RichTextBox x:Name="TextArea" BorderThickness="0" Padding="0"/>
</Grid>
2.Code in behind
TextArea.BorderThickness = new Thickness(0);//No border
TextArea.Padding = new Thickness(0); //text padding
TextArea.Margin = new Thickness(10); // margin of txtbox
答案 1 :(得分:0)
TextBox可以获得自己的内容宽度。 RichTextBox无法获取自己的内容宽度。 所以绑定透明的TextBox宽度。 但这个宽度并没有那么正确。 你需要更多的设计。(例如,准备多个TextBox?)
readRDS