2017-07-04 29 views
1

即时通讯xamarin.forms相当新。我已经开始创建一个应用程序,它将显示从书中检索到的大量文本。目前,我将文本添加到标签中,但用户无法在三个平台中的任何一个平台上复制他在屏幕上看到的文本?有没有办法从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"; 
     }