WPF TextWrapping caixa de texto

votos
9

Eu preciso de ajuda. Não sei se isso é possível. Eu quero ter o seguinte:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width=Auto/>
            <ColumnDefinition Width=*/>
        </Grid.ColumnDefinitions>
        <TextBox TextWrapping=Wrap MinLines =5/>
    </Grid>

que é um invólucro de caixa de texto no interior de uma coluna de grelha com largura *. Quero que a caixa de texto para levar toda a largura disponível (daí *), mas quando um usuário adiciona texto eu quero que ele quebrar quando se chega ao fim da linha (com o espaço disponível).

Atualmente o acima lhe dará uma caixa de texto com toda a largura, mas quando o texto é entrado a largura da caixa de texto apenas cresce com o texto.

Eu sei que eu posso definir MaxWidth = ?, mas o ponto da coluna é * é que eu não sei o que o tamanho da coluna é.

Gostaria de dizer à caixa de texto não crescem, seja qual for WPF dá-lhe levá-la e não aumentar mais um pixel acima.

Eu acho que o que eu quero é impossível, porque WPF pede o controle quão grande ele quer ser e quando o usuário adiciona mais texto que vai além do limite que gentilmente solicita mais espaço e dispara expandir sua largura ao infinito.

Publicado 19/05/2009 em 19:26
fonte usuário
Em outras línguas...                            


3 respostas

votos
9

Tente ligação a MaxWidthpropriedade de sua TextBoxà ActualWidthpropriedade de sua coluna com estrelas Michelin (você terá que nomear sua coluna para fazer isso). Eu tenho certeza que eu fiz algo parecido com isso no passado.

Algo como:

MaxWidth={Binding ElementName=MyColumn, Path=ActualWidth}

Boa sorte!

Respondeu 19/05/2009 em 19:36
fonte usuário

votos
0

Além do que RandomEngy diz sobre Grid.Column="1", você também pode ter de definir algumas propriedades de alinhamento na Gridprópria, especialmente se ele é definido dentro de outro recipiente com criança diferente Stretchcomportamento (por exemplo, um StackPanel).

Respondeu 20/05/2009 em 19:37
fonte usuário

votos
0

Parece funcionar corretamente para mim quando eu definir Grid.Column="1"na caixa de texto.

Respondeu 19/05/2009 em 19:43
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more