[英]Cant add ResourceDictionary to Application.Current.Resources.MergedDictionaries from xamarin.forms
[英]Xamarin.Forms MergedDictionaries
我創建了幾個XAML樣式,並將它們全部添加到App.xaml.cs中作為MergedDictionaries
<?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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.