2017-04-06 2 views
1

이미지를 배경으로 추가하려는 TextBox가 있습니다.TextBox의 배경 이미지를 확대/축소하려고하지만 자릅니다.

<TextBox Text="{Binding Titulo}" Height="Auto" HorizontalAlignment="Stretch" Margin="5,5,5,5" Name="txtTitulo" VerticalAlignment="Stretch" 
     TextAlignment="Center" 
     FontSize="30" 
     Padding="0,20,0,0" 
     FontWeight="Heavy" 
     BorderBrush="red" 
     BorderThickness="5"> 
    <TextBox.Background> 
     <ImageBrush ImageSource="../Imagenes/Logo (233x251) - fondo transparente (test).png" AlignmentX="Center" Stretch="None" AlignmentY="Center"> 
      <ImageBrush.Transform> 
       <ScaleTransform ScaleX="0.5" ScaleY="0.5" CenterX="0" CenterY="0" /> 
      </ImageBrush.Transform> 
     </ImageBrush> 
    </TextBox.Background> 
</TextBox> 

결과는 : 나는이 코드를 사용하는 경우

enter image description here

, 즉 변환 사용

<TextBox Text="{Binding Titulo}" Height="Auto" HorizontalAlignment="Stretch" Margin="5,5,5,5" Name="txtTitulo" VerticalAlignment="Stretch" 
     TextAlignment="Center" 
     FontSize="30" 
     Padding="0,20,0,0" 
     FontWeight="Heavy" 
     BorderBrush="red" 
     BorderThickness="5"> 
    <TextBox.Background> 
     <ImageBrush ImageSource="../Imagenes/Logo (233x251) - fondo transparente (test).png" AlignmentX="Center" Stretch="None" AlignmentY="Center"> 
     </ImageBrush> 
    </TextBox.Background> 
</TextBox> 

이 경우 결과는 이것이다 : 첫 번째 시도는 이것이다 이 :

enter image description here

enter image description here

이 확장 할 때, 크기를 줄일 것으로 보인다,하지만 텍스트 상자의 크기에 이미지를 잘라 : 나는 확장 할

이미지는 이것이다.

내가 원하는 것은 전체 이미지를 볼 수 있도록 이미지의 크기를 조정하는 것이지만 가져올 수는 없습니다.

답변

1

Stretch 속성의 값으로 Uniform을 사용해야합니다. 이처럼 :

Stretch="Uniform" 

그래서, 당신의 코드는 다음과 같습니다

<TextBox Text="{Binding Titulo}" Height="Auto" HorizontalAlignment="Stretch" Margin="5,5,5,5" Name="txtTitulo" VerticalAlignment="Stretch" 
     TextAlignment="Center" 
     FontSize="30" 
     Padding="0,20,0,0" 
     FontWeight="Heavy" 
     BorderBrush="red" 
     BorderThickness="5"> 
    <TextBox.Background> 
     <ImageBrush ImageSource="../Imagenes/Logo (233x251) - fondo transparente (test).png" AlignmentX="Center" Stretch="Uniform" AlignmentY="Center"/> 
    </TextBox.Background> 
</TextBox> 

Uniform 값은 원래 크기를 유지하면서 이미지가 사용 가능한 모든 공간을 채우기 있습니다.

+0

'Stretch' 속성에 값으로'없음 '을 사용했기 때문에 이미지는 원래의 고정 크기를 유지하고있었습니다. 따라서 텍스트 상자의 크기를 조절하면 이미지의 크기가 고정되어 크기가 조정되지 않습니다. –

+0

귀하의 질문을 다시 읽음으로써 귀하가 성취하려는 것을 확신 할 수 없습니다. 이미지를 텍스트 상자 내부 (텍스트 상자 안의 행성 이미지)에 맞추고 싶습니까? 아니면 이미지가 텍스트 상자 범위 (행성 이미지 안의 텍스트 상자)에서 보이기를 원하십니까? 내가 게시 한 해결책은 이미지를 텍스트 상자 내부에 맞 춥니 다 (행성 이미지가 텍스트 상자 안에 있음). –