WPF中的RichTextBox未正确调整内容大小

时间:2009-12-02 17:31:34

标签: wpf resize richtextbox

我需要在List中显示带有颜色和格式的文字。我正在使用ListBoxRichTextControl来显示数据。我还需要将内容大小调整到窗口,但文本不需要换行。

当我做这个简单的例子时,文本显示为垂直,并且不会随着我调整窗口大小而改变。如果我将Width的{​​{1}}设置为100这样的固定大小,那么它就能正常工作。

有什么想法吗?

RichTextBox

如果有更好的显示文字选项,部分文字是不同的颜色,请告诉我。

1 个答案:

答案 0 :(得分:3)

如果您不需要ListBox的列表选择行为,那么使用ItemsControl可以提供正确的布局:

<Grid>
    <ItemsControl>
        <RichTextBox>
            <FlowDocument>
                <Paragraph >
                    <Run>this is a  test</Run>
                </Paragraph>
            </FlowDocument>
        </RichTextBox>
    </ItemsControl>
</Grid>

但要获得你要求的内容,请将RichTextBox包裹在Grid中然后绑定到ActualWidth

<Grid>
    <ListBox HorizontalContentAlignment="Stretch">
        <ListBox.Items>
            <Grid>
                <RichTextBox Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType=Grid}}" >
                    <FlowDocument>
                        <Paragraph>
                            <Run>this is a  test</Run>
                        </Paragraph>
                    </FlowDocument>
                </RichTextBox>
            </Grid>
        </ListBox.Items>
    </ListBox>
</Grid>