我想在我的网页中实现应用程序级资源,但似乎无法正常工作。
的App.xaml:
<Application.Resources>
<Style TargetType="phone:PhoneApplicationPage">
<Setter Property="Background" Value="White" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="shell:SystemTray.ForegroundColor" Value="Black"></Setter>
<Setter Property="shell:SystemTray.BackgroundColor" Value="Transparent"></Setter>
<Setter Property="shell:SystemTray.Opacity" Value="0.5"></Setter>
</Style>
</Application.Resources>
页面
<phone:PhoneApplicationPage
...
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True" >
</phone:PhoneApplicationPage>
我希望系统托盘看起来应该像App.xaml中的样式一样,但它没有。
谢谢!
答案 0 :(得分:0)
自Mango以来,应用程序范围的隐式样式适用于Windows Phone。您需要记住的是隐式样式仅应用于TargetType,而不应用于其后代。您的页面是来自PhoneApplicationPage的继承的新类。将起作用的是:
<Application.Resources>
<Style TargetType="local:MainPage">
<Setter Property="Foreground" Value="Black" />
<Setter Property="shell:SystemTray.ForegroundColor" Value="Black"/>
</Style>
</Application.Resources>
但显然你必须为项目中的每个页面定义它,这使它变得毫无用处。对于Pages,最好使用显式样式(使用x:Key):
<Application.Resources>
<Style x:Key="PageStyle" TargetType="phone:PhoneApplicationPage">
<Setter Property="Foreground" Value="Black" />
<Setter Property="shell:SystemTray.ForegroundColor" Value="Black"/>
</Style>
</Application.Resources>
,对于项目中的每个页面,只需:
<phone:PhoneApplicationPage
Style="{StaticResource PageStyle}"