用于ContentPage中背景的Xamarin-Xaml样式
本文关键字:Xamarin-Xaml 样式 背景 ContentPage 用于 | 更新日期: 2023-09-27 18:22:48
刚在Xamarin工作,如果我尝试为ContentPage
设置样式,似乎什么都不会发生
App.Xaml资源字典中的Xaml:
<Style TargetType="ContentPage">
<Setter Property="BackgroundColor" Value="#f8f8f8"/>
</Style>
我知道app.xaml样式正在被阅读。我有一个按钮样式已经在全球范围内应用。但我似乎无法影响ContentPage
的任何更改。没有任何错误报告。
如何全局设置背景颜色?
我读到这可能是一个bug,但那是一年前的事了。如果它仍然是一个bug,有解决方法吗?
App.xaml
中的以下代码适用于我:
<Style TargetType="ContentPage" ApplyToDerivedTypes="True">
<Setter Property="BackgroundColor" Value="Lime" />
</Style>
注:
- 您不应该在
Style
中使用属性x:Key
- 您应该添加
ApplyToDerivedTypes="True"
我在找到了解决方案https://putridparrot.com/blog/styles-in-xamarin-forms/
根据@Tomasz Kowalczyk的提示,使用这个相当不完整的帖子中的示例xaml:
在app.xaml ResourceDictionary中,使用以下样式:
<Style x:Key="defaultPageStyle" TargetType="ContentPage">
<Setter Property="BackgroundColor" Value="#f8f8f8"/>
</Style>
基类称为BaseContentPage
public class BaseContentPage : ContentPage
{
public BaseContentPage()
{
var style = (Style)Application.Current.Resources["defaultPageStyle"];
Style = style;
}
}
然后在每个xaml.cs类中将其全部绑定在一起:
namespace MyNamespace
{
public partial class MyXamlPage: BaseContentPage
和.xaml文件
<local:BaseContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MyNamespace;assembly=MyNamespace"
x:Class="MyNamespace.MyXamlPage"