2016-12-16 11 views
0

私の目標は、表示されたテキストの任意の単語をタップすることができ、この選択された単語で何かを行うという機能付きのテキストを表示することです。テキスト - 1つの単語ごとに1つのラベル

私はラベルアプローチを選択します。それは、テキスト内のすべての単語がそれ自身のラベルになることを意味します。そして、私はそのラベルでタップイベントを起こすことができます。

しかし、私はラベルの "グループ"を "素敵な"形式のテキストにフォーマットする方法を見つけることができません。

私のアイデアだった:

private void ReadPageViewModel_ReloadPageEvent(string text) 
    { 

     MyLayout.Spacing = 2; //MyLayout is StackLayout 
     MyLayout.Orientation = StackOrientation.Horizontal; 

     //MyLayout.HorizontalOptions = LayoutOptions.EndAndExpand; 

     var splitedtText = text.Split(';'); 
     foreach(var item in splitedtText) 
     { 
      MyLayout.Children.Add(new Label {Text = item , HorizontalOptions = LayoutOptions.FillAndExpand }); 
     } 
    } 

すべてが間違ってフォーマットさテキストに結果を試してみてください。

私にいくつかアドバイスをいただけますか?間違ったレイアウトを使っていますか?それとも、私が知らない簡単なトリックがありますか?

EDIT:

スクリーンショット:

これは、ラベルに挿入単なるテキストで、これは私がこのテキスト内の各単語の1つのラベルを達成したいものです。多くの試行(上記のサンプルの結果)

bad formatting

+0

あなたの入力と希望する出力は? – RandomStranger

+0

あなたはあなたが持っているものとあなたが望むもののスクリーンショットを提供できますか? – user1

+0

入力はテキストだけです。たとえば、5つの文章と出力は、テキストで1つのラベルがある場合のように、通常は書式設定されたラベル(1語の1つのラベル)で構成されるテキストです。 –

答えて

1

goal

一つのお時間をありがとう。私は答えを見つけた。ラッパエルのようなものは、私が探していたものでした。しかし、xamarin.formsには1つがないので、私は自分自身を助けなければならなかった。

私はこのwrappanelクラス https://gist.github.com/NicoVermeir/7ffb34ebd639ed958382https://github.com/conceptdev/xamarin-forms-samples/blob/master/Evolve13/Evolve13/Controls/WrapLayout.cs

た1つのwrappanelクラスを選択し、プロジェクトに含めます。その後、ビューに名前空間を追加してください。

xmlns:controls="clr-namespace:SecretProject75.Controls;assembly=SecretProject75" 
<controls:AwesomeWrappanel Grid.Column="1" x:Name="MyWarappicek" Orientation="Horizontal"></controls:AwesomeWrappanel> 
関連する問題