Wpf 当按下左/右箭头键时,如何在Scrollviewer中自动滚动文本框?

Wpf 当按下左/右箭头键时,如何在Scrollviewer中自动滚动文本框?,wpf,scrollviewer,horizontal-scrolling,Wpf,Scrollviewer,Horizontal Scrolling,我正在用ScrollWeber包装文本框。问题是当有足够的文本水平滚动时,我们使用左/右箭头在文本中移动,光标移动到显示区域之外,但它不会自动滚动内容 <Grid> <Grid.RowDefinitions> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> &l

我正在用ScrollWeber包装文本框。问题是当有足够的文本水平滚动时,我们使用左/右箭头在文本中移动,光标移动到显示区域之外,但它不会自动滚动内容

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <ScrollViewer Grid.Row="0" Grid.Column="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
            <TextBox x:Name="Text1" AcceptsReturn="True" MinWidth="150" MinHeight="150"/>
        </ScrollViewer>
    </Grid>


这里有专家吗?

不要用
ScrollViewer
包装文本框。TextBox已经支持滚动

对文本框执行以下操作:

<TextBox x:Name="Text1" Grid.Row="1" AcceptsReturn="True" MinWidth="150" MinHeight="150" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"
                 ScrollViewer.VerticalScrollBarVisibility="Auto"  
                 ScrollViewer.HorizontalScrollBarVisibility="Auto" />

下面是一个示例,显示了不同之处:

<Grid Width="100" Height="300">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <ScrollViewer Grid.Row="0" Grid.Column="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="0,20,0,0">
            <TextBox x:Name="Text2" AcceptsReturn="True" MinWidth="150" MinHeight="150"/>
        </ScrollViewer>
        <TextBox x:Name="Text1" Grid.Row="1" AcceptsReturn="True" MinWidth="150" MinHeight="150" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"
                 ScrollViewer.VerticalScrollBarVisibility="Auto"  
                 ScrollViewer.HorizontalScrollBarVisibility="Auto" />

    </Grid>


希望这有帮助

不要用
ScrollViewer
包装文本框。TextBox已经支持滚动

对文本框执行以下操作:

<TextBox x:Name="Text1" Grid.Row="1" AcceptsReturn="True" MinWidth="150" MinHeight="150" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"
                 ScrollViewer.VerticalScrollBarVisibility="Auto"  
                 ScrollViewer.HorizontalScrollBarVisibility="Auto" />

下面是一个示例,显示了不同之处:

<Grid Width="100" Height="300">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <ScrollViewer Grid.Row="0" Grid.Column="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="0,20,0,0">
            <TextBox x:Name="Text2" AcceptsReturn="True" MinWidth="150" MinHeight="150"/>
        </ScrollViewer>
        <TextBox x:Name="Text1" Grid.Row="1" AcceptsReturn="True" MinWidth="150" MinHeight="150" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"
                 ScrollViewer.VerticalScrollBarVisibility="Auto"  
                 ScrollViewer.HorizontalScrollBarVisibility="Auto" />

    </Grid>


希望这有帮助

我想让scrollviewer包装文本框,因为scrollviewer修改了样式。MinWidth似乎在这里扮演了一些角色,但不确定是什么。下面的代码更改解决了问题,但引入了新问题-主键和结束键现在不会自动滚动:
我想让scrollviewer包装文本框,因为scrollviewer修改了样式。MinWidth似乎在这里扮演了一些角色,但不确定是什么。下面的代码更改解决了问题,但引入了新问题-主键和结束键现在不会自动滚动:
感谢回复,下面的代码也可以工作,但当我在复杂的应用程序中使用它时,它并没有像预期的那样工作——所以我的N个样式在应用程序中有些问题。我需要努力。你能举一个你所说的复杂度的例子吗?谢谢你的回复,下面的代码也可以,但是当我在我复杂的应用程序中使用它时,它并没有像预期的那样工作-所以我在应用程序中使用了N个样式。我需要努力。你能举一个例子说明你所说的复杂性吗?