2015-04-09 3 views
1

Я разрабатываю приложение для Windows-телефона, и мои требования включают использование определенной цветовой темы, а не использование темы по умолчанию (свет/темный/и т. Д.) Телефона.Применение настраиваемого шаблона для заголовка TextBox

Я застрял в форматировании/шаблонизации заголовков текстовых полей. Следующий код в 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> 

Есть либо способ просто настроить тему для или способа реализации шаблона для заголовков?

+0

У вас есть WP ** Silverlight ** или проект WP 8.1 (и следующий)? Только последний имеет свойство «Заголовок». Что не работает в вашем коде? Я тестирую его и не испытываю никаких проблем. PS: Разработка приложений не имеет ничего общего с WPF. – Koopakiller

+0

@ Koopakiller вы правы, код выше работает, поэтому не уверен, что проблема – SWilko

ответ

0

Если вам нужно реализовать шаблон на 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 дать ему ключ

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

и применяются к соответствующему TextBox

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

Надеюсь, что помогает

0

Это действительно странно, я проверил следующее:

<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> 

и в MainPage

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

И это работает, так что я думаю, что содержание от привязки пуст и, похоже, не будет за работой.

Смежные вопросы