2017-10-05 13 views
0

私は2つのエントリがあります。いずれかを入力として使用し、もう一方を計算の出力として使用できます。ユーザーが値を入力すると無効になり、ユーザーは値を入力できません。私の問題は、エントリが無効になっているときに、プレースホルダテキストとテキストの両方が暗い灰色になることです。これは、無効状態のテキストとプレースホルダーの色を設定しているにもかかわらずです。私は運がない色を設定するためのあらゆる種類の方法を試しました。常に上書きされます。私は、エントリが無効になっているときに背景の色を変えることは問題ありませんが、テキストは変更されません。エントリのプレースホルダテキストの色を制御する方法無効時

カスタムエントリコントロールを使用し、IsEnabledプロパティが変更されたときにプロパティを設定しようとしました。また、トリガを含むスタイルを適用しようとしましたが、XAMLでトリガを設定しようとしましたが、何も動作していません。

提案がありますか?

<Entry 
    HorizontalTextAlignment="Center" 
    Keyboard="Numeric" 
    Placeholder="0" 
    HorizontalOptions="FillAndExpand" 
    IsEnabled="{Binding MinuteEnabled}" 
    Text="{Binding MinuteString, Mode=TwoWay}"> 


    <Entry.Triggers> 
     <Trigger TargetType="Entry" 
      Property="IsEnabled" Value="False"> 
     <Setter Property="BackgroundColor" Value="Yellow" /> 
     <Setter Property="PlaceholderColor" Value="Green" /> 
     <Setter Property="TextColor" Value="Green" /> 

     </Trigger> 
    </Entry.Triggers> 

答えて

0

実はこれはアーカイブするのは難しいですが、かのうソリューションは、あなたの出力に結合するいくつかのentra隠されたラベルを持っています。

ここではいくつかのサンプルコードをアーカイブしてビューモデルで作成することができます。

public partial class MainPage : ContentPage 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 

     entry1.Completed += (s, e) => 
     { 
      // All your logic here or do it on view model 
      entry2.IsVisible = false; 
      Output2.IsVisible = true; 
      Output2.Text = entry1.Text; 
     }; 

     entry2.Completed += (s, e) => 
     { 
      // All your logic here or do it on view model 
      entry1.IsVisible = false; 
      Output1.IsVisible = true; 
      Output1.Text = entry2.Text; 
     }; 
    } 
} 

背後

XAML

<Label x:Name="Output1" 
     TextColor="Green" 
     BackgroundColor="Yellow" 
     HorizontalOptions="FillAndExpand" 
     FontSize="Medium" 
     HeightRequest="35" 
     IsVisible="False" /> 
<Entry x:Name="entry1" 
     Keyboard="Numeric" 
     Placeholder="0" 
     HorizontalOptions="FillAndExpand"/> 
<Entry x:Name="entry2" 
     Keyboard="Numeric" 
     Placeholder="0" 
     HorizontalOptions="FillAndExpand"/> 
<Label x:Name="Output2" 
     TextColor="Green" 
     BackgroundColor="Yellow" 
     HorizontalOptions="FillAndExpand" 
     FontSize="Medium" 
     HeightRequest="35" 
     IsVisible="False" /> 

とコードそして、あなたはそれをエントリとラベルの両方を復元するためにクリアボタンを追加することができます。

+0

ダーン、私はこれがフォームの制限だと恐れていました。ありがとうございます。 – Sevren

+0

@Sevrenカスタムレンダリングは機能しませんでしたか?あなたはそれをどのように実装していますか? – FabriBertani

関連する問題