wpf случайное выделение текста на Vista / XP - PullRequest
1 голос
/ 14 мая 2011

Эта проблема возникает только на Vista и XP. Происходит следующее: если текстовое поле содержит много текста и частично находится за пределами экрана, и вы щелкаете по нему, wpf прокручивает его в поле зрения и выделяет текст, пока он делает это. В Windows 7 он не будет прокручивать его в поле зрения. Я использую .net 4 и попытался очистить выделение полученного фокуса текстового поля, фокуса клавиатуры и событий захвата мыши, но после них прокрутка, кажется, происходит. Я включил несколько снимков экрана, о которых я говорю, а также тестовое приложение, которое демонстрирует проблему.

Прежде чем нажать на что-либо, на следующем снимке экрана все, что я сделал, это щелкнул по строке 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>

1 Ответ

0 голосов
/ 28 июля 2011

Оказывается от Microsoft, что это известная проблема в .net 3.5, и они исправлены в .net 4.0.у них не было работы вокруг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...