Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 如何控制条目';禁用时的占位符文本颜色_Xamarin_Xamarin.forms - Fatal编程技术网

Xamarin 如何控制条目';禁用时的占位符文本颜色

Xamarin 如何控制条目';禁用时的占位符文本颜色,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有两个条目。其中一个可用作输入,另一个可用作计算的输出。当其中一个获得输入值时,另一个被禁用,因此用户无法输入值。我的问题是,当条目被禁用时,占位符文本和文本都会变成深灰色。尽管已为禁用状态设置了文本和占位符颜色,但仍会出现这种情况。我尝试过各种各样的方法来设置颜色,但运气不好。它总是被覆盖。当条目被禁用时,我可以更改背景颜色,但文本不会更改 我尝试过使用自定义条目控件,并在IsEnabled属性更改时设置该属性。我还尝试了应用一种包含触发器的样式,并尝试在XAML中设置触发器,但没有任何效果

我有两个条目。其中一个可用作输入,另一个可用作计算的输出。当其中一个获得输入值时,另一个被禁用,因此用户无法输入值。我的问题是,当条目被禁用时,占位符文本和文本都会变成深灰色。尽管已为禁用状态设置了文本和占位符颜色,但仍会出现这种情况。我尝试过各种各样的方法来设置颜色,但运气不好。它总是被覆盖。当条目被禁用时,我可以更改背景颜色,但文本不会更改

我尝试过使用自定义条目控件,并在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>


实际上这很难存档,但一个可行的解决方案是将一些entra隐藏标签绑定到输出

这里是一些示例代码,您可以将其存档以使用视图模型

XAML


您可以添加一个清除按钮来恢复条目和标签。

实际上这很难存档,但一个可行的解决方案是将一些entra隐藏的标签绑定到您的输出

这里是一些示例代码,您可以将其存档以使用视图模型

XAML


您可以添加一个清除按钮来恢复条目和标签。

Darn,我担心这是表单限制。谢谢。@Sevren您的自定义渲染不起作用吗?你是如何实现的?该死,我担心这是表单的限制。谢谢。@Sevren你的自定义渲染不起作用吗?你如何实现它?
<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;
        };
    }
}