2017-07-04 11 views
1

imはxamarin.formsでかなり新しいです。私は本から検索された大量のテキストを表示するアプリケーションを作成し始めました。現時点では、ラベルにテキストを追加しますが、ユーザーは3つのプラットフォームのいずれかで画面に表示されるテキストをコピーできません。 xamarin.formsのラベルからテキストをコピーする方法はありますか?エディタでも試してみましたが、エディタにプッシュするとデータをコピーするようになっていますが、ユーザは入力したい文字を入力することができます。私は、ストリームから読み込んだテキストを表示し、ユーザーが望むテキストの量をコピーできるようにしたいだけです。どんな助けもありがとう!xamarin.formsのラベルからテキストをコピー

+0

下に試用できますクリップボードへのラベルテキスト。 – Jason

+0

エディタをサブクラス化し、変更されたテキストイベントを上書きして、ユーザーがテキストを変更できないようにすることができます。 – Slepz

+0

レンダラーを作成して読み取り専用にしてみよう – Krishna

答えて

1

あなたがコピーすること、ボタンを使用し、または標識にジェスチャーを追加することができます

Page.xamlを

<Entry TextChanged="Handle_TextChanged" Text="EnteyText" Unfocused="Handle_Unfocused" Focused="Handle_Focused" x:Name="entry" HeightRequest="50" WidthRequest="100" BackgroundColor="Aqua"/> 
<Button Text="Bind Text From Book" Clicked="Handle_Clicked" HeightRequest="50" WidthRequest="100" /> 

Page.Xaml.CS

bool isFocused; 
    string entryText="EnteyText"; 

    void Handle_Focused(object sender, Xamarin.Forms.FocusEventArgs e) 
    { 
     isFocused = e.IsFocused; 
    } 

     void Handle_Unfocused(object sender, Xamarin.Forms.FocusEventArgs e) 
     { 
      isFocused = e.IsFocused; 
     } 

     void Handle_TextChanged(object sender, Xamarin.Forms.TextChangedEventArgs e) 
     { 
      if (!isFocused) 
      { 
       entryText = (sender as Entry).Text; 
      } 
      if (isFocused && entryText != e.NewTextValue) 
      { 
       (sender as Entry).Text = e.OldTextValue; 
      } 
     } 

     void Handle_Clicked(object sender, System.EventArgs e) 
     { 
      entry.Unfocus(); 
      entry.Text = "Text from book"; 
     } 
関連する問題