如何解决从代码隐藏中的子文件夹获取特定的XAML资源文件
我正在尝试在代码中使用Style
,并且在后面的代码中将其设置为特定的resource file
,这应该是相对容易完成的事情,但是很遗憾,我已经花费了2多个小时实现它。
我的Xamarin.Forms ContentPage中具有以下XAML代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="PCS2.APP.HomePage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:ffimageloading="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"
xmlns:fftransformations="clr-namespace:FFImageLoading.Transformations;assembly=FFImageLoading.Transformations"
xmlns:grial="clr-namespace:UXdivers.Grial;assembly=UXdivers.Grial"
xmlns:local="clr-namespace:PCS2.APP"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Shell.NavBarIsVisible="False">
<ContentPage.Resources>
<ResourceDictionary Source="/Styles/TabControl/IOSTabResources.xaml" />
</ContentPage.Resources>
<ContentPage.Content>
<grial:TabControl
x:Name="tabControl"
Style="{StaticResource iOSTabStyle}"
TabContentBackgroundColor="{DynamicResource BasePageColor}"
TabStripBackgroundColor="{DynamicResource ArticleHeaderBackgroundColor}">
</grial:TabControl>
</ContentPage.Content>
</ContentPage>
但是,我想从后面的代码构建我的组件(TabControl
)。因此,我从XAML页面中删除了TabControl
,并在视图/页面的C#中添加了以下代码:
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
var tabControl = new TabControl
{
Style = (Style)Application.Current.Resources["iOSTabStyle"],TabContentBackgroundColor = (Color)Application.Current.Resources["BasePageColor"],TabStripBackgroundColor = (Color)Application.Current.Resources["ArticleHeaderBackgroundColor"]
};
Content = tabControl;
}
}
但是,在设置静态资源样式Style = (Style)Application.Current.Resources["iOSTabStyle"]
时,我收到了错误'Can't find Resource ...'
通常,Application.Current.Resources
可以正常工作,但是我注意到在原始XAML文件中,特定的资源文件(其中具有键/样式iOSTabStyle
)是单独加载的:
<ContentPage.Resources>
<ResourceDictionary Source="/Styles/TabControl/IOSTabResources.xaml" />
</ContentPage.Resources>
特定资源文件是Embedded resource
文件中未引用/未包含的App.xaml
。
问题是,如何访问特定的资源文件及其内容/ C#中的键/后面的代码?
我已经尝试了很多类似以下的事情:
var myResource = Resources.LoadFromXaml("/Styles/TabControl/IOSTabResources.xaml");
但没有成功。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。