有没有办法更改所有页面的背景颜色?或者我只需要在每个页面上更改LayoutRoot
颜色吗?
答案 0 :(得分:2)
你可以做的是创建一个应用背景颜色的样式,你仍然需要将样式应用到每个页面,但之后如果你需要进行更多的更改,你只需要改变样式。
应用于页面的示例样式可以在Using Styles and Resources to simplify your xaml看到,而不包括背景,它应该很容易理解。
答案 1 :(得分:0)
您可以创建基页类并设置背景颜色,然后从所有其他页面的基页继承。
修改
基页代码:
public class BasePage : PhoneApplicationPage
{
public BasePage()
{
Background = new SolidColorBrush(Colors.Red);
}
}
主页xaml。请注意,网格会绑定到页面的背景颜色。
<WindowsPhoneApplication2:BasePage
x:Class="WindowsPhoneApplication2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:WindowsPhoneApplication2="clr-namespace:WindowsPhoneApplication2"
mc:Ignorable="d"
d:DesignWidth="480"
d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape"
Orientation="Portrait"
shell:SystemTray.IsVisible="True"
x:Name="root">
<Grid
x:Name="LayoutRoot"
Background="{Binding Path=Background, ElementName=root}">
</Grid>
</WindowsPhoneApplication2:BasePage>
答案 2 :(得分:0)
我找到了解决方案。
问题在于Mango如何定义页面的背景颜色。
唯一的解决方法是使用应用程序范围的样式并将其应用于页面。
这是一个很好的方法:Windows Phone Mango Custom application Theme Step by Step
根据这些建议,我甚至可以动态地改变颜色。
答案 3 :(得分:-1)
添加以下应用程序资源会在所有页面上设置颜色。
<Style TargetType="phone:PhoneApplicationFrame">
<Setter Property="Background" Value="{StaticResource SomeBrush}"/>
</Style>