资源字典与扩展类

时间:2017-10-09 05:14:41

标签: c# xamarin.forms resourcedictionary

我一直在观看一些在线xamarin表格教程。所有这些都建议将资源字典用于样式等全局规则。但是我注意到很多错误的风险。请考虑以下示例:

在字典中我提到

<Style TargetType="Label" x:Key="lblStyle">
    <Property="FontAttributes" Value="Bold" />
    <Setter Property="FontSize" Value="30" />
</Style> 

然后我可以用它作为

<Label Text="My Text" Style="{StaticResource lblStyle}" />

然而,当分配到字典时,我只能获得智能感知一些关键词,并且当在标签上实现时,我不会获得密钥lblStyle的智能感知。此外,我不知道我是否输入了任何错误,因为它大部分都没有在编译时捕获。我确实理解为什么没有intellisense,但我发现以下更容易编码并且它做同样的

首先我创建一个类

public class MyLabel : Label
{
    public MyLabel()
    {
        FontAttributes = FontAttributes.Bold;
        FontSize = 30;
    }

}

然后我可以在xml中声明并使用以下内容:

<Components:MyLabel Text="My Text" />

在编码方面,第二种方式似乎在各方面都更好。我不明白的是,为什么所有的教程都建议我们使用资源字典?是否有一些值得所有弱打字的严重性能优势?

0 个答案:

没有答案