为文本框应用自定义模板 Header

Applying a Custom Template for TextBox Header

我正在开发一个 windows phone 应用程序,我的要求包括使用特定的颜色主题,而不是使用 phone 的默认主题 (Light/Dark/etc.) ].

我卡在 formatting/templating 文本框 headers 处。 app.xaml 中的以下代码不起作用:

<DataTemplate x:Key="HeaderTemplate">
    <TextBlock Text="{Binding}" Foreground="Black"/>
</DataTemplate>

<Style TargetType="TextBox">
    <Setter Property="Foreground" Value="#FFBBB8B8"/>
    <Setter Property="BorderBrush" Value="LightGray"/>
    <Setter Property="HeaderTemplate" Value="{StaticResource HeaderTemplate}"/>
</Style>

有没有一种方法可以只配置所使用的主题,或者有一种方法可以实现 headers 的模板?

如果您需要在 Page

上实施模板
<Page.Resources>
    <Style TargetType="TextBox">
        <Setter Property="HeaderTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Grid>
                        <TextBlock Text="{Binding}" Foreground="Red" />
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Page.Resources>
<StackPanel>
    <TextBox x:Name="TextBox" Width="300" Height="80"
             Margin="20" Header="Headline"/>
    <TextBox x:Name="TextBox2" Width="300" Height="80"
             Margin="20" Header="Headline2"/>
</StackPanel>

或者如果您希望 Style 应用于某些 TextBox 给它一个 Key

<Style TargetType="TextBox" x:Key="MyTextBoxStyle">

并应用于相关的 TextBox

<TextBox x:Name="TextBox2" Width="300" Height="80"
         Margin="20" Header="Headline2" 
         Style="{StaticResource MyTextBoxStyle}"/>}"/>

希望对您有所帮助

真奇怪我测试了以下:

  <Application.Resources>
        <Style  TargetType="TextBox" >
            <Setter Property="Foreground" Value="#FFBBB8B8"/>
            <Setter Property="BorderBrush" Value="LightGray"/>
            <Setter Property="HeaderTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <TextBlock Foreground="Red" Text="testing"/>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <DataTemplate x:Key="DT1">
            <TextBlock Foreground="Green" Text="testing"/>
        </DataTemplate>

        <Style  TargetType="TextBox" x:Key="TextBoxStyle2">
            <Setter Property="Foreground" Value="#FFBBB8B8"/>
            <Setter Property="BorderBrush" Value="LightGray"/>
            <Setter Property="HeaderTemplate" Value="{StaticResource DT1}"/>
        </Style>
</Application.Resources>

在主页

<Grid>
    <TextBox  Text="testing"/>
    <TextBox Margin="0,100,0,0" Style="{StaticResource TextBoxStyle2}" Text="testing"/>
</Grid>

它有效,所以我认为绑定的内容是空的,似乎不起作用。