WPF:Richtextbox 和 SizeToContent 导致应用程序使用所有可用空间

问题描述 投票:0回答:1

我想在主窗口中使用 RichTextBox 和 SizeToContent。我希望 RichTextBox 能够:

  • 最初具有窗口其他内容的宽度
  • 始终填满窗口的整个宽度

我有以下示例代码:

<Window
    x:Class="WpfApp13.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:WpfApp13"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    SizeToContent="WidthAndHeight"
    mc:Ignorable="d">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="1*" />
        </Grid.ColumnDefinitions>

        <StackPanel Grid.Row="0" Grid.Column="0">
            <Label>Hello World! Hello World! Hello World! Hello World!</Label>
        </StackPanel>

        <RichTextBox
            x:Name="RichTextBoxMessages"
            Grid.Row="1"
            Grid.Column="0"
            Margin="10" />
    </Grid>
</Window>

使用 ColumnDefinitions 时,我可以防止窗口占据所有屏幕大小,但在运行时调整大小时,RichTextBox 不会填充整个 MainWindow 宽度。

有什么方法可以实现我想要的行为吗?

wpf xaml richtextbox
1个回答
0
投票

尝试设置

FlowDocument
页面宽度:

<Window ...  SizeToContent="WidthAndHeight" MinHeight="200">
    <RichTextBox x:Name="RichTextBoxMessages"  Grid.Row="1" Grid.Column="0" Margin="10" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
        <FlowDocument x:Name="fdoc" PageWidth = "512"/>
    </RichTextBox>

默认情况下,页面宽度设置为

NaN
。我想这可能会导致您遇到问题。

参见 FlowDocument.PageWidth 属性

© www.soinside.com 2019 - 2024. All rights reserved.