2016-10-06 14 views
0

ラベルアニメーションの完了後にラベルテキストを保持する方法を把握したいと思います。私の考えは、ラベルの上とその背後にある項目があることです。入力にテキストがなくなるまで私のラベルは空ですが、ラベルを入力し始めたときに、新しく入力された文字の後にアニメーションが何度も表示されます。私はすでにそれをしましたが、アニメーションには一度だけ表示され、アニメーションを繰り返さずに通常のラベルを表示し続けることはありません。私のラベルはアニメーションで表示され、保存しないのですぐに消えます。ここでXamarinは、ラベルアニメーションの後にラベルテキストを保持する方法を設定します。

は私のXAMLコードです:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="Project.MyPage"> 
    <ContentPage.Content> 
    <StackLayout Padding="7,7,7,7" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Spacing="0"> 
       <StackLayout BackgroundColor="White"> 
       <Label x:Name="NameText" /> 
       <Entry x:Name="Name" /> 
       </StackLayout>      
    </StackLayout> 
    </ContentPage.Content> 
</ContentPage> 

、ここでは、イベントハンドラと私のC#のコードです:私のラベルにTextChange

public MyPage() 
{ 
    InitializeComponent(); 
    Name.TextChanged += Name_TextChanged; 
} 
private async void Name_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    NameText.Animate("nameAnimation", new Animation(v => NameText.Scale = v, 1, 2, Easing.SpringIn)); 
    NameText.Text = "MyLabel"; 
} 

どのように一度だけ表示され、完全なアニメーションアクション? 回答ありがとうございます。

答えて

0

は、アニメーションの後に、あなたのハンドラを切り離し:

async void Name_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    NameText.Animate("nameAnimation", new Animation(v => NameText.Scale = v, 1, 2, Easing.SpringIn)); 
    NameText.Text = "MyLabel"; 
    Name.TextChanged -= Name_TextChanged; 
} 
+0

今、アニメーションは1時間とラベルが表示テキストを保管しないで表示されます。アニメーションの後に空白のラベルが表示され、ビジュアルスタジオの再起動時にadd'ed - = Name_TextChanged; – BinaryTie

関連する問題