是否可以在 Xaml 中有一个静态样式列表
Is it possible to have a static list of Styles in Xaml
我想在 Xaml
中有一个 Styles
的静态列表
到目前为止我已经尝试过:
<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>
代码隐藏
public partial class Styles : List<Style>
{
public Styles()
{
}
}
但当我这样做时
var styles = new Styles();
class 为空。
顺便说一句,我不能使用 Application Resources
或 ResourceDictionary
您可以将样式放入 ResourceDictionary
(添加 -> 新项目 -> 资源字典):
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Your styles here -->
<Style ...
</ResourceDictionary>
不要忘记您需要在 App.xaml
中添加对它的引用:
<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"/>
...
要在代码隐藏中获取这些样式,您可以使用 FindResource
方法:
Style myStyle = App.Current.FindResource("MyStyleKey") as Style;
想到的另一个想法
创建标准Xamarin.Forms.Solution
用您的样式标记应用程序 XAML
实例化它并将 Application.Resource 序列化为 XML
返回您的 MVVMCross 应用程序并在加载时反序列化它,并在构建或 Application.Current.Resources 时将其分配给每个页面。一旦你有了 XML 的格式,你就可以直接编辑它,它可以从一个项目移植到另一个项目,基本上是 css 风格 sheet(在 xml格式)Xamarin Forms 可能很有趣。
我想在 Xaml
Styles
的静态列表
到目前为止我已经尝试过:
<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>
代码隐藏
public partial class Styles : List<Style>
{
public Styles()
{
}
}
但当我这样做时
var styles = new Styles();
class 为空。
顺便说一句,我不能使用 Application Resources
或 ResourceDictionary
您可以将样式放入 ResourceDictionary
(添加 -> 新项目 -> 资源字典):
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Your styles here -->
<Style ...
</ResourceDictionary>
不要忘记您需要在 App.xaml
中添加对它的引用:
<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"/>
...
要在代码隐藏中获取这些样式,您可以使用 FindResource
方法:
Style myStyle = App.Current.FindResource("MyStyleKey") as Style;
想到的另一个想法
创建标准Xamarin.Forms.Solution 用您的样式标记应用程序 XAML 实例化它并将 Application.Resource 序列化为 XML 返回您的 MVVMCross 应用程序并在加载时反序列化它,并在构建或 Application.Current.Resources 时将其分配给每个页面。一旦你有了 XML 的格式,你就可以直接编辑它,它可以从一个项目移植到另一个项目,基本上是 css 风格 sheet(在 xml格式)Xamarin Forms 可能很有趣。