当我尝试设置 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] 删除。
我来说两句