WPF ScrollViewer更改TextBlock宽度

时间:2020-06-26 11:45:50

标签: wpf scrollviewer textblock

我有一个带有TextBlock的简单对话框,当内容比TextBlock / Dialog宽时,该对话框应随窗口调整大小并显示滚动条。没有ScrollViewer,它可以正常工作-TextBlock与窗口一样宽。一旦添加ScrollViewer,TextBlock就会变得更宽(适合内容宽度)。为什么ScrollViewer会更改TextBlock的行为,如何防止这种情况?

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Label Grid.Row="0" Grid.Column="0" Content="A label"/>
    <ScrollViewer Grid.Row="1" Grid.Column="0" Margin="10" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
        <Border BorderThickness="0.5" BorderBrush="Gray">
            <TextBlock MinHeight="200" MinWidth="600"
                       Text="Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... Some long text ... " />
        </Border>
    </ScrollViewer>        
    <Button Grid.Row="2" Grid.Column="0" Width="80" Margin="0 10 15 15" Height="25" HorizontalAlignment="Right" Content="OK"/>
</Grid>

2 个答案:

答案 0 :(得分:0)

因为ScrollViewer为您的控件提供了所需的尽可能多的空间,并有助于滚动它们。我认为您的问题是边框,您只需要将ScrollViewer放在边框内,一切就会看起来很好。

答案 1 :(得分:0)

我们还没有完全解决您的问题。 您希望TextBlock随窗口/对话框调整大小。 使用或不使用ScrollViewer,TextBlock都将随窗口相应地调整大小。 当内容不适合屏幕显示时,ScrollViewer仅允许您对元素的内容(在本例中为TextBlock)进行排序。您的代码没有任何问题,只是使您感到困惑的视觉表示。 :)希望你能得到它。

相关问题