有没有一种方法可以简化将字符串、对象添加到 Xamarin 中的资源字典的过程,以便我可以使用列表或数组来执行此操作?

理查德·斯科利

当我尝试设置 Resource 字典时,有没有一种方法可以将多个设置语句合并为一个?

这是我现在正在做的一个例子:

Application.Current.Resources[nameof(Fonts.CarouselHeadingFontSize)] = 24;
Application.Current.Resources[nameof(Fonts.CarouselSubHeadingFontSize)] = 36;
Application.Current.Resources[nameof(Fonts.ContentLabelTextFontSize)] = 13.5 * Fs;

我所做的是创建一个方法来设置这些:

private void SetResource(string keyName, object v)
{
    Application.Current.Resources[keyName] = v;
}

像这样使用它:

SetResource(nameof(Fonts.ButtonLinkLabelTextFontSize), 15 * Ms);
SetResource(nameof(Fonts.CarouselFooterFontSize), 16);

但是有没有一种方法可以将这个设置进一步简化为这样的:

SetResources((nameof(Fonts.ButtonLinkLabelTextFontSize), 15 * Ms),
             (nameof(Fonts.CarouselFooterFontSize), 16));

请注意,资源字典是

IDictionary<string, object>
安迪

您可以结合使用元组params

private void SetResources(params (string, object)[] resources)
{
    foreach(var (key, value) in resources)
    {
        Application.Current.Resources[key] = value;
    }
}

然后您可以这样称呼它(在您的示例中是如何使用的):

SetResources((nameof(Fonts.ButtonLinkLabelTextFontSize), 15 * Ms),
             (nameof(Fonts.CarouselFooterFontSize), 16));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章