2010-07-12 6 views
1

У меня есть TextBox с высотой = 15 и width = 50. Я хочу, чтобы текстовое поле увеличивалось, когда размер текста превышает 50. Я хочу достичь этого, не используя Width = «Auto». Есть ли способ достичь этого? Я попробовал TextWrapping = TextWrapping.Wrap без каких-либо успехов.WPF TextBox autogrow

Цените свою помощь!

ответ

0

Допустим, ваш текстовое поле внутри сетки, которая имеет 2 колонки

<Grid> 
<Grid.ColumnDefinitions> 

    //The first column is used for a label 
    <ColumnDefinition Width="Auto"/> 

//This column is used for your text box 
<ColumnDefinition Width="*" 
        MinWidth="25"/> 
</Grid.ColumnDefinitions> 

    <Label Grid.Column="0" 
     Content="Something:" 
    /> 
    <TextBox Grid.Column="1" 
      Content="BindToProperty" 
    /> 
</Grid> 

и высоту и ширину вашего пользовательского элемента управления устанавливается в

Авто

Так что всякий раз, когда вы размещаете пользовательский контроль на другие элементы управления, он будет иметь минимальную ширину

25 + ширина этикетки

. Если вы хотите увеличить ширину, вы можете установить ширину непосредственно в пользовательский элемент управления, а текстовое поле будет растянуто.

Cheers