views:

23

answers:

1

Hi guys,

So I'm making a custom window template for my WPF application. The trouble I'm having is that I cannot access the Window Title property inside the template.

I tried this:

<TextBlock Text="{TemplateBinding Title}" />

And this:

<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Title}" />

Everything that I've read indicates that either of those two should work and yet the text is never set.

Any suggestions?

EDIT: Presenting the entire style xaml

<Style x:Key="RegularWindow" TargetType="{x:Type Window}">
    <Setter Property="Foreground" Value="{StaticResource {x:Static SystemColors.WindowTextBrushKey}}"/>
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="AllowsTransparency" Value="True"/>
    <Setter Property="WindowStyle" Value="None"/>
    <Setter Property="SizeToContent" Value="WidthAndHeight"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Border BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="10" Background="{TemplateBinding Background}">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <TextBlock Text="{TemplateBinding Title}" FontWeight="Bold" Grid.Row="0" />
                        <AdornerDecorator Grid.Row="1">
                            <ContentPresenter/>
                        </AdornerDecorator>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
A: 

So it turns out that Expression Blend fails to render the window correctly. As soon as I run the code it actually works. My bad for trusting Expression Blend.

Darko Z