none
Textblock e gestione a capo automatico del testo caricato da xml RRS feed

  • Domanda

  • Salve a tutti,

    so che per alcuni di voi sarà una domanda banale,

    vorrei sapere lato code behind come mandare a capo dentro una textblock un testo caricato da xml.

    le funzioni che posso usare sono textTrimming (inserisce dei puntini di sospensione) e textWrapping (manda a capo)

    purtroppo quando inserisco myTbl.TextWrapping = TextWrapping.Wrap; non funziona premetto che mytbl fa parte di uno user control quindi sarebbe UsC.myTbl.TextWrapping etc etc

    inserisco un pezzo di codice cosi da essere piu comprensibile:

    UsC.myTbl.TextWrapping = TextWrapping.Wrap;
    UsC.myTbl.Text = arrTesto[1].ToString();

    arrTesto[1].ToString(); -> contiene il testo caricato da xml

    ho dimenticato qualche parametro da settare nel xaml che deve leggersi oppure ci sono dei problemi per mandare a capo il testo?

    Grazie delle risposte
    venerdì 26 febbraio 2010 14:31

Risposte

  • Crea una nuova applicazione WPF, nella finestra principale inserisci questo xaml:

    <Grid>
            <TextBlock Height="72"
                       HorizontalAlignment="Left"
                       Margin="45,46,0,0"
                       Name="textBlock1"
                       Text="TextBlock"
                       VerticalAlignment="Top"
                       Width="135"
                       TextWrapping="Wrap" />
            
        </Grid>
    e poi aggiungi del testo a textBlock1, vedrai che va correttamente a capo.
    Corrado Cavalli [Microsoft .NET MVP-MCP]
    UGIdotNET - http://www.ugidotnet.org
    Weblog: http://blogs.ugidotnet.org/corrado/
    Twitter: http://twitter.com/corcav
    • Proposto come risposta Nicolò CarandiniMVP domenica 28 febbraio 2010 10:45
    • Contrassegnato come risposta fo_ol lunedì 1 marzo 2010 09:30
    venerdì 26 febbraio 2010 20:29
    Moderatore

Tutte le risposte

  • Salve a tutti,

    so che per alcuni di voi sarà una domanda banale,

    vorrei sapere lato code behind come mandare a capo dentro una textblock un testo caricato da xml.

    le funzioni che posso usare sono textTrimming (inserisce dei puntini di sospensione) e textWrapping (manda a capo)

    purtroppo quando inserisco myTbl.TextWrapping = TextWrapping.Wrap; non funziona premetto che mytbl fa parte di uno user control quindi sarebbe UsC.myTbl.TextWrapping etc etc

    inserisco un pezzo di codice cosi da essere piu comprensibile:

    UsC.myTbl.TextWrapping = TextWrapping.Wrap;
    UsC.myTbl.Text = arrTesto[1].ToString();

    arrTesto[1].ToString(); -> contiene il testo caricato da xml

    ho dimenticato qualche parametro da settare nel xaml che deve leggersi oppure ci sono dei problemi per mandare a capo il testo?

    Grazie delle risposte

    Ciao Fo_ol, molto strano...

    Puoi postare il codice XAML ed il codebehind per intero (o almeno una parte significativa). Così non mi viene in mente nulla di utile. 

    Grazie

    Angelo

    Looking for a job in London. Contact me :) www.angelobadellino.net
    venerdì 26 febbraio 2010 19:50
  • Crea una nuova applicazione WPF, nella finestra principale inserisci questo xaml:

    <Grid>
            <TextBlock Height="72"
                       HorizontalAlignment="Left"
                       Margin="45,46,0,0"
                       Name="textBlock1"
                       Text="TextBlock"
                       VerticalAlignment="Top"
                       Width="135"
                       TextWrapping="Wrap" />
            
        </Grid>
    e poi aggiungi del testo a textBlock1, vedrai che va correttamente a capo.
    Corrado Cavalli [Microsoft .NET MVP-MCP]
    UGIdotNET - http://www.ugidotnet.org
    Weblog: http://blogs.ugidotnet.org/corrado/
    Twitter: http://twitter.com/corcav
    • Proposto come risposta Nicolò CarandiniMVP domenica 28 febbraio 2010 10:45
    • Contrassegnato come risposta fo_ol lunedì 1 marzo 2010 09:30
    venerdì 26 febbraio 2010 20:29
    Moderatore
  • Grazie funziona correttamente.

    il mio xaml era molto meno dettagliato

    <Grid>
    <TextBlock x:Name="myTbl" FontSize="15" Foreground="Navy" Margin="0,15,0,0" TextWrapping="Wrap" />
    <Grid>
    tutto viene gestito dal parametro width.

    Però ho una domanda se io volessi la width dinamica quindi nn gli assegno nessun valore il problema persiste, al momento mi conviene gestire così appena ho un attimo penso come risolverla :D.


    lunedì 1 marzo 2010 09:46
  • Se la Width è dinamica il textblock non è in grado di capire quando lo spazio a disposizione non è disponibile e quindi deve andare a capo...
    Corrado Cavalli [Microsoft .NET MVP-MCP]
    UGIdotNET - http://www.ugidotnet.org
    Weblog: http://blogs.ugidotnet.org/corrado/
    Twitter: http://twitter.com/corcav
    lunedì 1 marzo 2010 13:57
    Moderatore
  • Grazie della risposta

    cercherò di assegnare, al momento è fissa (e tutto funziona :D ), la Width da codebehind calcolandola a seconda della risoluzione sperando di non aver detto una cavolata :D
    lunedì 1 marzo 2010 14:00