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表单-如果控件具有从XAML设置的属性,请从自定义呈现程序中进行检查_Xamarin_Xamarin.forms_Xamarin.ios - Fatal编程技术网

Xamarin表单-如果控件具有从XAML设置的属性,请从自定义呈现程序中进行检查

Xamarin表单-如果控件具有从XAML设置的属性,请从自定义呈现程序中进行检查,xamarin,xamarin.forms,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.ios,我有一些控件的自定义呈现器(按钮,选择器,标签),还有一些常用属性,我在自定义呈现器中设置了这些属性,在某些情况下,我想设置不同的属性,这些属性是我从XAML中设置的。但是,由于自定义渲染器,XAML中设置的属性被覆盖。如果自定义渲染器的属性是从XAML设置的,为了避免常见行为,是否有办法签入这些渲染器?您可以在相应的可绑定属性上使用DefaultValue属性添加检查 例如,仅当控件上的BackgroundColor属性未在XAML、样式或绑定中设置时,以下代码才会指定新值 if(Elemen

我有一些控件的自定义呈现器(
按钮
选择器
标签
),还有一些常用属性,我在自定义呈现器中设置了这些属性,在某些情况下,我想设置不同的属性,这些属性是我从XAML中设置的。但是,由于自定义渲染器,XAML中设置的属性被覆盖。如果自定义渲染器的属性是从XAML设置的,为了避免常见行为,是否有办法签入这些渲染器?

您可以在相应的可绑定属性上使用
DefaultValue
属性添加检查

例如,仅当控件上的
BackgroundColor
属性未在XAML、样式或绑定中设置时,以下代码才会指定新值

if(Element is Label lbl)
{
    if(lbl.BackgroundColor.Equals(Label.BackgroundColorProperty.DefaultValue))
    {
        lbl.BackgroundColor = newValue;
    }
}

您可以在相应的可绑定属性上使用
DefaultValue
属性添加检查

例如,仅当控件上的
BackgroundColor
属性未在XAML、样式或绑定中设置时,以下代码才会指定新值

if(Element is Label lbl)
{
    if(lbl.BackgroundColor.Equals(Label.BackgroundColorProperty.DefaultValue))
    {
        lbl.BackgroundColor = newValue;
    }
}

谢谢这正是我想要的!谢谢这正是我想要的!