gpt4 book ai didi

c# - Xamarin.Forms 合并字典

转载 作者:行者123 更新时间:2023-11-30 15:53:58 25 4
gpt4 key购买 nike

我创建了一些 XAML 样式并将它们作为 MergedDictionaries 全部添加到 App.xaml.cs 中

<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Axon.Mobile.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ResourceDictionaries/Colors.xaml"/>
<ResourceDictionary Source="ResourceDictionaries/GlobalStylesDictionary.xaml"/>
<ResourceDictionary Source="ResourceDictionaries/KeyStylesDictionary.xaml"/>
<ResourceDictionary Source="ResourceDictionaries/ReceptionStylesDictionary.xaml"/>
<ResourceDictionary Source="ResourceDictionaries/PutAwayStylesDictionary.xaml"/>
<ResourceDictionary Source="ResourceDictionaries/ViewModelLocatorDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

当我使用任何字典中定义的样式作为 StatisResouce 时,此解决方案有效,即:

<Label TextColor="{StaticResource Test1}"/>

但是我想创建动态资源,在这种情况下我需要替换 C# 中的样式。问题是

Application.Current.Resources

包含这 6 个其他词典作为 MergedDictionary 属性。所有给定的词典都是空的。

为什么我在C#中获取不到定义的样式?

最佳答案

这很奇怪,但我注意到我们目前只能使用 TryGetValue 方法访问位于 MergedDictionaries 中的资源:

 if (Application.Current.Resources.TryGetValue("StyleResourceKey", out var objectStyle))
{
var style = (Style)objectStyle;

//Edit your style
}

关于c# - Xamarin.Forms 合并字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51498627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com