如何在Windows Phone 7中使用全局样式?

8

我想在WP7中使用全局样式,类似于:

<Style TargetType="Button">
//some code here
</Style>

问题是这段代码似乎在WP7中无法工作。

我知道如何给样式添加x:Key,之后可以将其作为StaticResource进行引用,但这不是我的情况。我想要一个全局样式。

4个回答

8
如果我创建一个应用程序范围(全局)的样式,就像这样:

<Application.Resources>
    <Style x:Key="MyTextNormalStyle" TargetType="TextBlock">
        <Setter Property="Foreground" Value="White" />
        <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}" />
        <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}" />
    </Style>
</Application.Resources>

然后我可以这样引用它:
<TextBlock Text="some text" Style="{StaticResource MyTextNormalStyle}" />

1
正如我脆弱地解释,我知道如何使用StaticResource来做到这一点,但我需要一个全局样式,这样所有的按钮都使用相同的样式,而无需设置任何StaticResource。 - Kate Brown
你需要在手机页面上进行数据绑定才能使其工作吗? - Chibueze Opata

2
如果我理解正确,您想在WP7中使用隐式样式。请注意:隐式样式是Silverlight 4(和WPF)的一个特性:Windows Phone 7基于Silverlight 3+(添加了一些Silverlight 4功能)。由于Silverlight 3中没有隐式样式,这意味着在Windows Phone 7中也无法使用它们。
因此,如果您想在WP7中实现某种全局样式,我建议您尝试像Matt Lacey建议的使用StaticResource方法。

1

0
如果您想让所有按钮使用相同的样式,您需要创建一个基础按钮类来实现该样式,然后从该类继承所有按钮。
您可以使用用户控件或自定义控件来实现此功能。使用用户控件可能更容易一些。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接