de tehMick es absolutamente correcta: Definitivamente, usted debe crear un recipiente para hacer el cambio de tamaño en lugar de personalizar el cuadro de texto en sí. Y si funciona para usted GridSplitter
es una muy buena solución en la caja.
Tuve la misma situación pero GridSplitter no funcionaría, así que creé un control "ResizeBorder" que manejaba el mouse arrastra en sus cuatro esquinas para cambiar el tamaño en dos dimensiones, o en el medio de los lados para cambiar el tamaño en uno. Este es en realidad un código muy simple: simplemente maneje MouseDown, establezca una variable local que proporcione la ubicación MouseDown y el lado/esquina que se está arrastrando, luego en MouseMove actualice el tamaño.
Mi ResizeBorder fue diseñado para que yo pudiera mostrar solo cuatro cajas en las esquinas y líneas a los lados, o cualquier cosa más compleja que pudiera soñar.
Además, tenga en cuenta que si está utilizando una cuadrícula y GridSplitters o una ResizeBorder o cualquier otra cosa, usted tiene la opción de poner su funcionalidad de cambio de tamaño ya sea todo el control de la siguiente manera:
<my:ResizeBorder ...>
<TextBox ... />
</my:ResizeBorder>
o la actualización del cuadro de texto para ControlTemplate sí:
<ControlTemplate x:Key="ResizableTextBox" TargetType="{x:Type TextBox}">
<my:ResizeBorder>
...
</my:ResizeBorder>
</ControlTemplate>
...
<TextBox Template="{StaticResource ResizableTextBoxTemplate}" ... />
las ventajas de este último método es que se puede utilizar un estilo o propiedad adjunta para hacer cuadros de texto puede cambiar de tamaño y que ca n fácilmente cambia la resitibilidad del TextBox de forma dinámica en el código.
Duplicado: http://stackoverflow.com/questions/771275/resizing-a-control-in-wpf – Heinzi
Esto no debe marcarse como duplicado ya que no funciona nada en ese enlace. –