2016-04-15 22 views
0

Ich entwickle UWP (Win10 - VS2015) App. Ich brauche eine Token TextBox in der Windows-Plattform. Irgendeine Idee, bitte, wie man dieses Steuerelement startet und erstellt, dann wenn man Text innerhalb der Textbox schreibt und Platz eingibt oder einfach auf diesen Text klickt, sollte es in ausgewählte Token konvertieren. Siehe das Bild (es ist nur für die Idee). Ich brauche solche Art von Kontrolle.UWP - So erstellen Sie ein TokenAutoComplete-Steuerelement

Sie können auch Idee von diesem Beitrag erhalten TokenAutoComplete

enter image description here

+0

haben Sie diesen Link bezeichnet http://stackoverflow.com/questions/36237644/how-to-create-a-Tokenizing-Steuerelement-für-uwp-wie-bekannt-aus-Outlook-wenn-Verwendung-zu? – Archana

+0

Hallo @Archana, vielen Dank für Ihr Interesse noch einmal. Ich werde auch in Ihren Verweis-Link und den Blog hinein schauen, und werde mich dann bald wieder bei Ihnen melden, InshaAllah. :) –

+0

@LovetoCode (Archana), ich würde den Artikel in Ihrem Verweis-Link lesen. Das ist eigentlich ein toller Artikel speziell für WPF Benutzer. Ich versuche es in UWP-Anwendungen zu implementieren, aber viele Fehler bcoz RichEditBox in UWP hat nicht solche Optionen wie in WPF RichTextBox. So ist es erforderlich, dass Sie plz für diese Kontrolle in UWP arbeiten und es teilen. Es wird sehr geschätzt werden. Noch einmal vielen Dank. –

Antwort

1

Der Code, den ich Entsendung bin Anfangscode ist, können Sie beginnen Steuerung builting mit ..

I verwendet RichTextBlock und Textbox. Wenn Sie diese beiden Steuerelemente in WrapPanel in der Gridview einfügen. Sie könnten eine ähnliche Kontrolle bekommen, die Sie wollten, aber ich habe es nicht versucht.

<RichTextBlock x:Name="tokenblock"> 
       <Paragraph> 

       </Paragraph> 

      </RichTextBlock> 
      <TextBox TextChanged="TextBox_TextChanged"/> 

-Code ist hinter ähnliche

private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
     { 
      string text = (sender as TextBox).Text; 
      if (text.Contains(';')) 
      { 
       Paragraph para; 
       text = text.Substring(0, text.LastIndexOf(';')); 
       if (tokenblock.Blocks.Count > 0) 
        para = tokenblock.Blocks[0] as Paragraph; 
       else 
       para = new Paragraph(); 
       InlineUIContainer inline = new InlineUIContainer(); 
       Border br = new Border(); 
       br.Background = new SolidColorBrush(Colors.Gray); 
       br.CornerRadius = new CornerRadius(10); 
       TextBlock tb = new TextBlock(); 
       br.MinWidth = 70; 
       br.MaxWidth = 150; 
       tb.Text = text; 
       tb.TextWrapping = TextWrapping.Wrap; 
       tb.Margin =new Thickness(10, 10, 10, 10); 
       br.Child = tb; 
       inline.Child = br; 
       para.Inlines.Add(inline); 
       (sender as TextBox).Text = ""; 
      } 

// unten Codes ich nicht versucht haben

<GridView x:Name="myGridView" IsItemClickEnabled="True"> 
     <GridView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <ItemsWrapGrid Orientation="Horizontal" MaximumRowsOrColumns="5"/> 
      </ItemsPanelTemplate> 
     </GridView.ItemsPanel> 
//here you have to put RichTextBlock and textbox as two gridview items 
+0

OK großartig, ich werde das versuchen und dich wissen lassen, InshaAllah. Vielen Dank. –

+1

Vielen Dank, es hat perfekt funktioniert. Entschuldigung für die verspätete Antwort. Gerade heute habe ich diesen Code benutzt und mit minimalen Änderungen je nach meinem Bedarf, es funktionierte perfekt ... immer noch ein bisschen Problem in Ausrichtung und Verpackung, aber 95% Arbeit erledigt. Vielen Dank. Ich werde den Code hier ändern und teilen, wenn er fertig ist. Zurück zu diesem bald InshaAllah. –