【问题标题】:WPF automatic scroll in Textblock is not working [closed]Textblock中的WPF自动滚动不起作用[关闭]
【发布时间】:2020-09-28 05:58:29
【问题描述】:

我正在尝试在我的文本块中实现垂直滚动。但它不起作用

<Window x:Class="FileManager.MainWindow" namespace:FileManager" mc:Ignorable="d" Style="{StaticResource RedStyle}" Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBlock Text="ExFile Manager Application" HorizontalAlignment="Center" Margin="20,5,20,0"/>
        <TextBox HorizontalAlignment="Center" Height="43" Margin="30,35,0,0" TextWrapping="Wrap" Text="Select only the text file" VerticalAlignment="Top" Width="476" Name="FileNameTextBox"/>
        <Button x:Name="BrowseButton" Content="Browse a file" HorizontalAlignment="Right" Click="BrowseButton_Click" Margin="485,35,10,0" VerticalAlignment="Top" Width="121" RenderTransformOrigin="1.047,0.821" Height="40"/>
       
        <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <StackPanel>
                <TextBlock HorizontalAlignment="Left" Margin="30,96,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Name="TextBlock1"/>
            </StackPanel>
        </ScrollViewer>
    </Grid>
</Window>

【问题讨论】:

  • VerticalScrollBarVisibility="Auto"
  • 不工作。当我添加滚动查看器时,我的按钮被禁用了。
  • 您似乎有already posted this question,在另一个帐户下。不要多次发布同一个问题。
  • 你想达到什么目的?

标签: c# wpf xaml .net-core


【解决方案1】:

主要问题是您启用了ScrollViewer 的水平滚动条,这将导致TextBlock 以正无穷大进行测量。因此,TextBlock 将扩展到其全宽以显示所有文本,并且内容将显示在一行中。您的选择是:

  • 删除HorizontalScrollBarVisibility="Auto" 以禁用水平滚动,这会将TextBlock 扩展到最大包含Grid 的宽度,然后换行。
  • WidthMaxWidth 分配给TextBlock,这样它就不会超出该大小,并且一旦超出该大小就会将文本换行到下一行,从而启用水平和垂直滚动

作为一般说明,您的布局很奇怪。您的所有控件都在Grid 中重叠,您设置Margins 来定位它们。您应该做的是在Grid 中创建行和列来定位控件或使用不同的面板进行布局。有很多选项,可以大大简化您的布局。以Grid 行和列为例:

<Grid>
   <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
      <RowDefinition/>
   </Grid.RowDefinitions>
   <Grid.ColumnDefinitions>
      <ColumnDefinition/>
      <ColumnDefinition Width="Auto"/>
   </Grid.ColumnDefinitions>
   <TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="ExFile Manager Application" HorizontalAlignment="Center" Margin="20,5,20,0"/>
   <TextBox Grid.Row="1" Grid.Column="0" Height="43"  TextWrapping="Wrap" Text="Select only the text file" Name="FileNameTextBox"/>
   <Button Grid.Row="1" Grid.Column="1" x:Name="BrowseButton" Content="Browse a file"/>
   <ScrollViewer Grid.Row="2" Grid.ColumnSpan="2">
      <StackPanel>
         <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Name="TextBlock1"/>
      </StackPanel>
   </ScrollViewer>
</Grid>

您可以查看Layout 页面,了解有关布局和 WPF 面板的更多信息。

【讨论】:

    【解决方案2】:

    这段代码能达到你想要的效果吗?

        <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TextBlock Text="ExFile Manager Application" HorizontalAlignment="Center" Margin="20,5,20,0"/>
        <TextBox HorizontalAlignment="Center" Height="43" Margin="30,35,0,0" TextWrapping="Wrap" 
                 Text="Select only the text file"
                 VerticalAlignment="Top" Width="476" Name="FileNameTextBox"/>
        <Button x:Name="BrowseButton" Content="Browse a file" HorizontalAlignment="Right"  Margin="485,35,10,0" VerticalAlignment="Top" Width="121" RenderTransformOrigin="1.047,0.821" Height="40"/>
       
        <Grid Grid.Row="1">
            <ScrollViewer>
                <TextBlock 
                           HorizontalAlignment="Left" Margin="30,96,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Name="TextBlock1"
                           Text="bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla "/>
            </ScrollViewer>
        </Grid>
            
    </Grid>
    

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 2019-05-18
      • 2017-05-27
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多