我正在尝试以WPF格式显示FlowDocument并尝试过RichTextBox和FlowDocumentScrollViewer。我还要求窗口调整大小以显示所有文本。 不幸的是,当我为Window本身设置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>
答案 0 :(得分:1)
SizeToContent
仅“有效”,在这种情况下,网格(Window
的内容)没有大小限制,因此它会尝试获取所有空间它可以得到,窗口通过给它提供适合屏幕的空间来响应。
如果你想要防止这种情况,你需要使文档的容器大小适合他们的内容,如果文档本身没有任何边界,并且行为在给你我所有人的行为,这可能是不可能的。有风度。