我有2个条目。两者都可以用作输入,另一个可以用作计算的输出。当输入一个值时,另一个被禁用,因此用户无法输入值。我的问题是,当禁用该条目时,占位符文本和文本都变为深灰色。尽管已为禁用状态设置了文本和占位符颜色。我已经尝试了各种方法来设置颜色没有运气。它总是被覆盖。在禁用条目时更改背景颜色没有问题,但文本不会更改。
我尝试使用自定义Entry控件并在更改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 :(得分:0)
实际上这很难归档,但是一个可行的解决方案是将一些隐藏的标签绑定到您的输出。
这里有一些示例代码,您可以使用视图模型进行存档。
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" />
背后的代码
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;
};
}
}
您可以添加一个清除按钮来恢复条目和标签。