2011-05-13 60 views
1

此问题仅发生在vista和xp上。正在发生的事情是,如果有一个文本框有很多文本,并且部分在屏幕之外,并且您点击它,那么wpf会将其滚动到视图中并突出显示文本。在Windows 7中,它不会将其滚动到视图中。我正在使用.net 4,并试图清除文本框收到的焦点,键盘焦点和鼠标捕捉事件的选择,但滚动似乎发生在那些之后。我包含了一些我正在谈论的屏幕截图以及一个演示问题的测试应用程序。wpf随机高亮显示vista/xp上的文本

点击任何东西,在下一屏前拍我所做的就是点击在线6 Before

点击在线6可以看到,因为它滚动文本框眼帘的一切都突出了。 after

摄制:

/// <summary> 
/// Interaction logic for MainWindow.xaml 
/// </summary> 
public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     for (int i = 1; i < 1000; i++) 
     { 
      textBox3.AppendText(string.Format("line {0}\r\n", i)); 
     } 
    } 
} 

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525" MaxHeight="350" MaxWidth="525"> 
<Grid> 
    <ScrollViewer> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="100"></RowDefinition> 
       <RowDefinition Height="auto"></RowDefinition> 
       <RowDefinition Height="*"></RowDefinition> 
      </Grid.RowDefinitions> 
      <TextBox Grid.Row="0" Text="this is some text"></TextBox> 
      <TextBox Grid.Row="1" Text="this is some text"></TextBox> 
      <TextBox Grid.Row="2" ScrollViewer.CanContentScroll="True" 
      ScrollViewer.VerticalScrollBarVisibility="Auto" AcceptsReturn="True" 
      x:Name="textBox3"></TextBox> 
     </Grid> 
    </ScrollViewer>   
    </Grid> 
</Window> 

回答

0

从微软原来,这是.NET 3.5的一个已知问题,他们固定在.NET 4.0中。他们没有解决问题。