2009-09-21 3 views
1

Je crée une application qui est destinée à imprimer des formulaires destinés à être remplis par des humains écrivant sur papier. Ces documents suivent un style de questions et réponses. Généralement, vous avez des paragraphes avec un style "souligné" sur lequel une réponse de forme libre peut être écrite.WPF Documents: Comment créer des paragraphes de "soulignements" sur lesquels vous pouvez écrire des réponses à des questionnaires

Comment créer ceci en utilisant des documents WPF?

Voici un mockup de ce que je veux dire, fait l'utilisation de Word avec des tables et tabstops:

mock up http://img147.imageshack.us/img147/9350/questionnaire.png

Répondre

0

J'ai finalement trouvé un moyen d'y parvenir, je pensais partager.

Créez la table externe avec deux lignes et deux colonnes comme vous vous en doutez. Pour les soulignements, créez trois tableaux différents, chacun avec une seule ligne et une seule colonne, avec une bordure appliquée uniquement au bas.

Voici à quoi il ressemble dans le code:

 for (int i = 1; i < pQuestionSpec.NumberOfLines; i++) 
     { 
      Table innerT = new Table(); 
      var col1 = new TableColumn(); 

      col1.Width = new GridLength(1, GridUnitType.Star); 
      innerT.Columns.Add(col1); 

      var innerRowGroup = new TableRowGroup(); 
      var innerRow = new TableRow(); 

      var cell2 = new TableCell(); 
      cell2.BorderThickness = new Thickness(0, 0, 0, 1); 
      cell2.BorderBrush = Brushes.Black; 
      cell2.Blocks.Add(new Paragraph()); 

      innerRow.Cells.Add(cell2); 
      innerRowGroup.Rows.Add(innerRow); 

      innerT.RowGroups.Add(innerRowGroup); 

      cell.Blocks.Add(innerT); 
     } 
+0

Je suis curieux de savoir pourquoi vous créez les commandes en code. Vous pouvez facilement créer de tels contrôles dans XAML et utiliser un ItemTemplate pour créer les champs de texte pour entrer des données. –

+0

Si vous me donnez cela dans une réponse qui fonctionne, je vais vous donner tous les up-votes que je peux :) –

Questions connexes