我正在尝试在表单上显示TimePicker控件的样式,以便文本颜色相应地改变为具有透明背景的手机样式。对于普通文本,我只使用:
Style="{StaticResource PhoneTextNormalStyle}"
但是,这对TimePicker不起作用,我在尝试构建项目时遇到错误。
对于目前严重缺乏细节感到抱歉,我目前暂时无法访问我的开发框。当我回到家时,我会发布控件和错误的屏幕截图。
答案 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}"/>
希望有所帮助。