Search code examples
c#xamlwindows-store-appswinrt-xamlwindows-8.1

How to style TextBox Header?


I am using a TextBox like this:

<TextBox x:Name="TxtName" IsEnabled="False" Header="Textbox header" IsReadOnly="True" TextWrapping="Wrap"  Text="{Binding Name,Mode=TwoWay}" Style="{StaticResource MyTextBoxStyle}" />

I would like to be able to style (i.e. setting the font) the Header of the TextBox in a ResourceDictionary. When I set the FontFamily of the TextBox it also affect the header, but I would like to set two different font styles for the text inside the TextBox and the text in the Header.

This is my style for the TextBox:

<Style x:Key="MyTextBoxStyle" TargetType="TextBox">
    <Setter Property="BorderThickness" Value="0" />
    <Setter Property="FontFamily" Value="Comic Sans MS" />
</Style>

How can I do this?


Solution

  • Try This

         <TextBox Height="70" Width="200" Text="Text" Foreground="Green" FontFamily="Tahoma">
            <TextBox.Header>
                <TextBlock  Text="Header" Foreground="red" FontFamily="Times New Roman"></TextBlock>
            </TextBox.Header>
        </TextBox>
    

    Update

    <Page.Resources>
        <Style TargetType="TextBox">
            <Setter Property="Height" Value="70"></Setter>
            <Setter Property="Width" Value="200"></Setter>
            <Setter Property="Text" Value="Text"></Setter>
            <Setter Property="FontFamily" Value="Tahoma"></Setter>
            <Setter Property="Foreground" Value="Green"></Setter>
            <Setter Property="HeaderTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <TextBlock Foreground="Red"  Text="{Binding}" FontFamily="Times New Roman"></TextBlock>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Page.Resources>
    
     <TextBox Header="Header" />