Установите цвет фона для заголовка панорамы

#windows-phone-7

#windows-phone-7

Вопрос:

Я хотел бы установить цвет фона для заголовка панорамы. Я сделал это, создав DataTemplate и установив для него значение TitleTemplate. Затем я устанавливаю цвет фона как таковой:

 <DataTemplate x:Key="PanoramaTitleTemplate">
    <Grid Margin="0,50,0,0" Background="{StaticResource PhoneAccentBrush}">
        <TextBlock Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" FontSize="133.333" />
    </Grid>
</DataTemplate>
  

Проблема в том, что на последней странице панорамы цвет не заполняет всю область. Он заканчивается там, где заканчивается текст. Я попытался увеличить ширину сетки, но это не только по-прежнему не заполняет экран, но и влияет на прокрутку заголовка.

Ответ №1:

Создайте табличку данных для заголовка панорамы и задайте ширину текстового блока (элементы * 480):

 <DataTemplate x:Key="PanoramaTitleTemplate">
  <StackPanel Orientation="Horizontal" Background="#FF990000" Margin="-10 76 0 -9"> <!-- default 10,-76,0,9 -->
    <Image x:Name="logoImage" Source="/ApplicationIcon.png" Margin="10 0 30 0" />
    <TextBlock Text="{Binding}" VerticalAlignment="Center" Width="1920" Height="40" FontSize="20"/> 
  </StackPanel>
</DataTemplate>
  

Ответ №2:

Это связано с тем, что заголовок анимирован как часть эффекта paralax.

Вы могли бы написать свои собственные варианты замены панорамы, но вам будет гораздо проще добавить отдельное изображение на страницу вместо панорамы и добавить другой элемент (возможно, прямоугольник) перед тем, который вы можете считать цветом акцента.

Комментарии:

1. Иногда ответ слишком прост, чтобы его можно было увидеть. Я просто поместил заполненный прямоугольник позади заголовка, и вы не смогли бы заметить разницу. Не уверен, что вы имели в виду под «отдельным изображением», но я предполагаю, что вы имели в виду, было ли у панорамы фоновое изображение, которого у моего нет. Спасибо за решение.