Я создал ресурс в файле FrameRes.xaml
следующим образом:
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Japanese.Resources.FrameRes">
<Style x:Key="FrameBorder" TargetType="Frame">
<Setter Property="CornerRadius" Value="2" />
<Setter Property="HasShadow" Value="false" />
<Setter Property="Margin" Value="10,0" />
<Setter Property="BorderColor" Value="{DynamicResource LineColor}" />
<Setter Property="Padding" Value="0" />
<Setter Property="VerticalOptions" Value="Start" />
</Style>
</ResourceDictionary>
и это содержится внутри:
<?xml version="1.0" encoding="utf-8"?>
<Application xmlns:converters="clr-namespace:Japanese"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Japanese.App">
<Application.Resources>
<ResourceDictionary Source="/Resources/FooterRes.xaml" />
<ResourceDictionary Source="/Resources/FrameRes.xaml" />
</Application.Resources>
</Application>
Когда я пытаюсь получить доступ к этому на С#, как это, он терпит неудачу и говорит, что нет ссылки на FrameBorder:
var fb2 = (Style)Application.Current.Resources["FrameBorder"];
Когда я пытаюсь получить доступ к этому на С#, он работает:
Application.Current.Resources.TryGetValue("FrameBorder", out object frameBorder);
var fb = (Style)frameBorder;
Кто-нибудь знает, почему первый способ не работает. Мне он кажется таким же.