【问题标题】:SizeToContent Fills Screen with RichTextBox and FlowDocumentScrollViewerSizeToContent 用 RichTextBox 和 FlowDocumentScrollViewer 填充屏幕
【发布时间】:2011-06-10 14:47:24
【问题描述】:

我正在尝试以 WPF 表单显示 FlowDocument,并尝试了 RichTextBox 和 FlowDocumentScrollViewer。我还要求调整窗口大小以显示所有文本。 不幸的是,当我为窗口本身设置 SizeToContent="WidthAndHeight" 时,无论我在 FlowDocument 中放入什么内容,窗口都会扩展到我所有显示器的全宽!然而,高度似乎调整得很好。

有人知道如何让它正确调整大小吗?环顾四周,无法弄清楚如何进行...
XAML 下面:

<Window x:Class="CustomControls.SecureConfirmationDialog"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="SecureConfirmationDialog" 
        MinHeight="120" MinWidth="200" 

        Height="120" Width="300" 
        ResizeMode="NoResize" 
        SizeToContent="WidthAndHeight"
        WindowStyle="ToolWindow"
        Loaded="Window_Loaded">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <FlowDocumentScrollViewer Name="flowMsg" Grid.Row="0" Grid.ColumnSpan="3" Margin="3" IsToolBarVisible="False" ScrollViewer.VerticalScrollBarVisibility="Hidden" />
        <TextBox Name="txtConfirm" Grid.Row="1" Grid.Column="0" Text="Testing" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="3" />
        <Button Name="btnOK" Grid.Row="1" Grid.Column="1" Content="OK" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="3" Width="50" Click="btnOK_Click"  />
        <Button Name="btnCancel" Grid.Row="1" Grid.Column="2" Content="Cancel" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="3" Width="50" Click="btnCancel_Click" />
    </Grid>
</Window>

【问题讨论】:

  • 你想让窗口做什么有点令人困惑。您是否希望所有内容始终在没有滚动条的情况下显示?尝试将第一行高度更改为“自动”
  • 不要真正关心滚动条,这只是我可以做到的唯一方法,而不显示 FlowDocumentReader 工具栏。

标签: c# wpf xaml flowdocument


【解决方案1】:

SizeToContent 仅在内容实际有界时“有效”,但在这种情况下,Window 的内容 Grid 没有大小限制,因此它会尝试获取它可以获得的所有空间,窗口会做出响应,为其提供与屏幕一样多的空间。

如果您想防止这种情况发生,您需要为您的文档制作容器以适应其内容的大小,如果文档本身没有任何边界并且还表现出“给我所有你”的行为,这可能是不可能的有礼貌。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-21
    • 2014-11-08
    • 1970-01-01
    • 2022-11-11
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多