2017-10-24 4 views
-1

안녕하세요, 제가 정의한 격자를 채우려는 TextBox이 있습니다. 그것을하기 위해 나는 그것을 적합하게 맞출 수 있도록 뻗어 놓았다. 그러면 문제는 텍스트가 가운데에 쓰여지는 것이고 위에 쓰여지는 것입니다. 가운데 정렬을하면 TextBox은 더 이상 늘어나지 않습니다.TextBox 전체 텍스트 상자가 늘이기 모드 일 때 가운데 맞춤 정렬하는 텍스트 내용

<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Grid.Row="3" Grid.Column="0" Text="Wall Temperature [C]"/> 
<TextBox HorizontalAlignment="Stretch" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1" Text="150.0"/> 
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Grid.Row="4" Grid.Column="0" Text="Wall Temperature [C]"/> 
<TextBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="4" Grid.Column="1" Text="150.5"/> 

그것은 당신은 당신이 수직으로 정렬 할에 텍스트를 원하는 경우 TextBoxControlTemplate을 수정해야이

enter image description here

답변

1

과 같습니다

<Grid> 
    <Grid.Resources> 
     <SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/> 
     <SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/> 
     <SolidColorBrush x:Key="TextBox.Focus.Border" Color="#FF569DE5"/> 
     <Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TextBox}"> 
         <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" 
           BorderThickness="{TemplateBinding BorderThickness}" 
           Background="{TemplateBinding Background}" 
           SnapsToDevicePixels="True"> 
          <ScrollViewer x:Name="PART_ContentHost" Focusable="false" 
             HorizontalScrollBarVisibility="Hidden" 
             VerticalScrollBarVisibility="Hidden" 
             VerticalAlignment="Center"/> 
         </Border> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsEnabled" Value="false"> 
           <Setter Property="Opacity" TargetName="border" Value="0.56"/> 
          </Trigger> 
          <Trigger Property="IsMouseOver" Value="true"> 
           <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.MouseOver.Border}"/> 
          </Trigger> 
          <Trigger Property="IsKeyboardFocused" Value="true"> 
           <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Grid.Resources> 
    ... 
    <TextBox Height="100" Text="Centered text..." /> 
</Grid> 

enter image description here

+0

완벽하고 감사합니다. 너무 많이. – VegaBrothers