【问题标题】:WPF _ TextBlock Vertical ScrollBar issueWPF _ TextBlock 垂直滚动条问题
【发布时间】:2015-07-01 08:48:48
【问题描述】:

我有一个如下所示的堆栈面板。

    <Stackpanel>
         <Grid>
             <Grid.RowDefinitions>
                 <RowDefinition/>
                 <RowDefinition/>
             </Grid.RowDefinitions>

         < TextBlock Text="SomeText"  Grid.Row="0"/>

         <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" >

             <TextBlock Text="Some Other Text"/>
       </ScrollViewer>
    </Grid>
    </StackPanel>

我希望第二个文本块有一个垂直滚动条。但它不显示垂直滚动条。有谁知道是什么问题?

【问题讨论】:

  • 它将显示一个像这样的滚动条,将高度设置为文本块 2 以确保,但这将被禁用,因为滚动查看器中没有任何内容可滚动
  • 首先解释您的要求,这可能会让我们了解您要做什么,因为这看起来不太正确。

标签: c# wpf textblock vertical-scrolling


【解决方案1】:

这个工作试试这个 .cs 页面添加这一行 txt1.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;

<Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
         </Grid.ColumnDefinitions>
    <ScrollViewer>
        <StackPanel x:Name="RightPanel"
                    Margin="5,0"
                    ScrollViewer.HorizontalScrollBarVisibility="Visible"
                    ScrollViewer.VerticalScrollBarVisibility="Visible">
            <TextBox TextWrapping="Wrap" Height="50" x:Name="txt1"  Text="Some Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other Text"/>
        </StackPanel>
    </ScrollViewer>
</Grid>

【讨论】:

    【解决方案2】:

    尝试这样的事情(在 TextBox 中设置 ScrollViewer 的宽度和高度以及 TextWrapping):

    <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Visible" 
                  HorizontalScrollBarVisibility="Disabled" 
                  Width="70" Height="50">
         <TextBlock Text="Some Other Text tststssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss" 
                    TextWrapping="Wrap"/>
     </ScrollViewer>
    

    【讨论】:

      【解决方案3】:
      1. 摆脱stackpanel
      2. Heights 添加到RowDefinitions
      3. TextWrapping 设置为TextBlock

      所以你的代码应该是这样的:

      <Grid>
          <Grid.RowDefinitions>
              <RowDefinition Height="Auto"/>
              <RowDefinition Height="*"/>
          </Grid.RowDefinitions>
      
          <TextBlock Text="SomeText"  Grid.Row="0"/>
      
          <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" >
              <TextBlock TextWrapping="Wrap" Text="Some Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other TextSome Other Text"/>
          </ScrollViewer>
      </Grid>
      

      【讨论】:

        猜你喜欢
        • 2010-11-14
        • 2011-08-03
        • 1970-01-01
        • 2010-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-29
        相关资源
        最近更新 更多