2015-08-28 4 views
0

Следующий код работает, как ожидается, в Windows 7:Странное поведение TextBox в ОС Windows 8.1 и Windows 10

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Class="WpfApplication2.MainWindow" 
    Title="MainWindow" 
    Height="Auto" 
    Width="500" 
    ResizeMode="NoResize" 
    WindowStyle="SingleBorderWindow" 
    SizeToContent="Height" 
    WindowStartupLocation="CenterScreen"> 
<Grid> 
    <TextBox IsReadOnly="True" 
      MinLines="6" 
      MaxLines="6" 
      TextWrapping="Wrap" 
      VerticalScrollBarVisibility="Visible" 
      Text="test &#10;test &#10;test &#10;test &#10;test &#10;test &#10;test &#10;test &#10;test &#10;"/> 
</Grid> 

Тот же код работает под Win8.1 или Win10 показывает TextBox с вертикальной полосой прокрутки центрируется по вертикали в пределах большей области TextBox.

Кажется, проблема с компоновкой WPF. Код был разработан в VS2013, .net 4.5. Все проверенные системы Windows - x64. Любые идеи сделать это простое приложение работает с такими же результатами в win7 ... win10?

ответ

1

Удалить линию

MaxLines="6" 

это вызывает ваш Textbox быть ограничены по высоте и появляются вертикально по центру Window

+0

Удаление MaxLines не будет ограничивать размер TextBox, который требуется в моем приложении. Также он не объясняет, почему этот код работает правильно в Win7, а не в Win 8.1 или 10. – Hns

+0

Используйте 'VerticalAlignment =" Center "или любое другое релевантное значение. – Alireza

+0

VerticalAlignment или VerticalContentAlignment ничего не меняет в этом примере. Единственное свойство, которое изменяет визуальный результат, - это параметр VerticalScrollBarVisibility, установленный на «Авто». В этом случае полоса прокрутки видима только в том случае, если в TextBox имеется более 6 строк текста, что неточно при установке на «Видимый». – Hns

Смежные вопросы