C# 可以在Xaml中有一个静态的样式列表吗

C# 可以在Xaml中有一个静态的样式列表吗,c#,list,xaml,xamarin.forms,C#,List,Xaml,Xamarin.forms,我想在Xaml 到目前为止,我已经尝试: <local:Styles xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:MyApp.Core;assembly=MyApp.Core"> <Style x:Key="lab

我想在
Xaml

到目前为止,我已经尝试:

<local:Styles xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:MyApp.Core;assembly=MyApp.Core">
  <Style x:Key="labelStyle" TargetType="Label">
    <Setter Property="TextColor" Value="Green" />
  </Style>
</local:Styles>
这个班是空的


顺便说一句,我不能使用
应用程序资源
资源字典
您可以将样式放置在
资源字典
中(添加->新项目->资源字典):

要在代码隐藏中掌握这些样式,可以使用
FindResource
方法:

Style myStyle = App.Current.FindResource("MyStyleKey") as Style;

我想到的另一个想法

创建标准的Xamarin.Forms.Solution 使用您的样式标记应用程序XAML 实例化它并将Application.Resource序列化为XML
返回您的MVVMCross应用程序,在加载时对其进行反序列化,并将其分配到construction或Application.Current.Resources中的每个页面。一旦你有了XML的格式,你就可以直接编辑它,而且它可以从一个项目移植到另一个项目——基本上,Xamarin表单的css样式表(XML格式)可能会很有趣

你在找这样的资源字典吗?我正在使用
Xamarin.Forms
所以即使这两种方法都有效,我也不能使用
ResourceDictionary
(由于某种原因,Xamarin已经密封了这个类。我不能使用
应用程序资源
,因为我使用的是
MvvmCross
,它不提供应用程序资源。因此需要一个静态的样式列表。你不需要为
资源字典
创建一个新的C#类,这是一个你不需要的项目。)o添加到项目中。右键单击项目->添加->新项目->资源字典。资源字典没有C#代码。至于
应用程序资源
,您不能简单地编辑
App.xaml
文件并添加
应用程序.Resources
元素吗?我找不到
资源字典作为一项仅添加
资源文件
(我正在构建PCL)。我无法使用Application.Resources,因为我使用的是MvvmCross,其基类是
MvxApplication
,而不是从
Application
继承的。基本上我没有App.xaml。我最终通过将资源保存到pages Resources中并将其加载到Application.Current.Resources中来解决这个问题落后
var styles = new Styles();
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <!-- Your styles here -->
    <Style ...

</ResourceDictionary>
<Application x:Class="Your.App.Namespace"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/Your.App.Namespace;component/Path/To/Dictionary.xaml"/>
            ...
Style myStyle = App.Current.FindResource("MyStyleKey") as Style;