样式化TimePicker控件

时间:2011-11-29 17:09:35

标签: windows-phone-7.1 windows-phone-7

我正在尝试在表单上显示TimePicker控件的样式,以便文本颜色相应地改变为具有透明背景的手机样式。对于普通文本,我只使用:

Style="{StaticResource PhoneTextNormalStyle}"

但是,这对TimePicker不起作用,我在尝试构建项目时遇到错误。

对于目前严重缺乏细节感到抱歉,我目前暂时无法访问我的开发框。当我回到家时,我会发布控件和错误的屏幕截图。

1 个答案:

答案 0 :(得分:1)

执行此操作的简单方法是使用Expression Blend。在那里打开项目,右键单击控件并选择“编辑样式” - > “编辑副本”。这会将一个样式元素放入page.resources部分,该部分看起来像下面的代码片段

<Style x:Key="TimePickerStyle1" TargetType="toolkit:TimePicker">
     <Setter Property="Background" Value="{StaticResource PhoneTextBoxBrush}"/>
     <Setter Property="BorderThickness" Value="0"/>
     <Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>
     <Setter Property="HorizontalContentAlignment" Value="Left"/>
     <Setter Property="PickerPageUri" Value="/Microsoft.Phone.Controls.Toolkit;component/DateTimePickers/TimePickerPage.xaml"/>
     <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="toolkit:TimePicker">
                 <StackPanel>
                    <ContentControl ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Foreground="{StaticResource PhoneSubtleBrush}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="12,0,12,-4"/>
                    <Button x:Name="DateTimeButton" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Content="{TemplateBinding ValueString}" Foreground="{TemplateBinding Foreground}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Height="72"/>
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

,您的控件定义如下所示:

<toolkit:TimePicker Name="TimePickerInstance" Style="{StaticResource TimePickerStyle1}"></toolkit:TimePicker>

当然,您可以自己将此代码段放在那里,并在控件中以相同的方式引用它。它将以相同的方式工作 - Expression Blend只是简化了这一过程。

您应该可以根据需要从那里操作,可能会将第2行和第4行更改为

<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource PhoneAccentBrush}"/>

希望有所帮助。