2015-08-28 48 views
0

下面的代碼工作像預期在Windows 7:奇怪的文本框的行爲和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出現垂直居中不會限制這是在我的應用程序所需要的文本框的大小。也沒有解釋爲什麼這個代碼在Win7中運行正確,而不是在Win 8.1或者10中。 – Hns

+0

使用'VerticalAlignment ='Center''或者任何其他相關的值。 – Alireza

+0

在此示例中,VerticalAlignment或VerticalContentAlignment不會更改任何內容。唯一改變視覺效果的屬性是將VerticalScrollBarVisibility設置爲「Auto」。在這種情況下,只有在TextBox中有6行以上的文本時,纔會顯示滾動條,將其設置爲「可見」時不同。 – Hns