2011-05-16 3 views

ответ

23

Невозможно автоматически сделать это для всех заголовков в вашем приложении. Вам нужно будет установить стиль для каждого из них.

Неявное моделирование входит в обновление Mango, и это должно позволить это сделать тогда.

Обновление
Вот что вы можете сделать сейчас.

Создайте глобальный стиль шаблона для FontSzie, который вы хотите. Что-то вроде:

<Application.Resources> 
    <DataTemplate x:Key="MyItemHeaderTemplate"> 
     <Grid> 
      <ContentPresenter> 
       <TextBlock Text="{Binding}" FontSize="20" /> 
      </ContentPresenter> 
     </Grid> 
    </DataTemplate> 
</Application.Resources> 

Тогда в каждом PanoramaItem, что я хочу иметь стиль таким образом я установить HeaderTemplate:

<controls:PanoramaItem Header="first" HeaderTemplate="{StaticResource MyItemHeaderTemplate}"> 
    // ... 
</controls:PanoramaItem> 
+0

«set style»: вы имеете в виду набор DataTemplate для HeaderTemplate? Если это так, мне нужно создать 4 DataTemplates для каждого из моих 4 элементов панорамы, потому что каждый заголовок элемента отличается? Или я могу каким-то образом привязать один DataTemplate к свойству PanoramaItem.Header? – Buju

+0

ah thx. Я потерял часть с Text = "{Binding}" ... Я не знал, как получить доступ к строке заголовка изнутри DataTemplate. Есть ли способ посмотреть, какие свойства я могу привязать к данным в DataTemplate, если что-то подобное происходит со мной снова? – Buju

1

Вы можете создать свой собственный контроль PanoramaItem и использовать Generic.xaml, чтобы применить пользовательские Стиль PanoramaItem.

public class MyPanoramaItem : Microsoft.Phone.Controls.PanoramaItem 

    { 
     public MyPanoramaItem() 
     { 
      DefaultStyleKey = typeof(MyPanoramaItem); 
     } 
    } 

Затем вы создаете темы \ Generic.xaml

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:YourProjectNamespace"> 

    <Style TargetType="local:MyPanoramaItem"> 
     <!—your custom PanoramaItem style-->  
    </Style> 
</ResourceDictionary> 

И затем использовать пользовательские панорамы, как это:

xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls" 
xmlns:local="clr-namespace:YourProjectNamespace" 

<Grid x:Name="LayoutRoot" Background="Transparent"> 
     <!--Panorama control--> 
     <controls:Panorama Title="my application"> 
      <controls:Panorama.Background> 
       <ImageBrush ImageSource="PanoramaBackground.png"/> 
      </controls:Panorama.Background> 

      <!--Panorama item one--> 
      <local:MyPanoramaItem Header="first item"> 
      </ local:MyPanoramaItem > 
     </controls:Panorama> 

Подробнее о Generic.xaml и ее использования вы можете найти here ,

2

Может быть, вы могли бы попытаться положить это в рамках <controls:Panorama>:

<controls:Panorama.TitleTemplate> 
    <DataTemplate> 
    <TextBlock Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" FontSize="150" Margin="0,20,0,0" FontWeight="Bold" /> 
    </DataTemplate> 
</controls:Panorama.TitleTemplate> 

Найдено здесь: http://www.jstawski.com/archive/2010/10/25/change-windows-phone-7-panoramarsquos-control-title.aspx

5

Это был сложный вопрос для меня. Однако я нашел довольно простое решение, чтобы позаботиться об этом для каждого элемента головы, который вы хотите изменить размер/шрифт/шрифт ... так далее. Я добавил фрагмент из текущего проекта, над которым я работал. Обратите внимание на часть xaml для элементов управления: PanoramaItem.HeaderTemplate. Здесь храм изменяется для элемента заголовка. Удачи!

<!--Panorama item one--> 
     <controls:PanoramaItem Header="Locations"> 
      <Grid> 
       <ListBox Height="498" HorizontalAlignment="Left" Margin="2,0,0,0" Name="listBox1" VerticalAlignment="Top" Width="424" /> 
      </Grid> 

      <controls:PanoramaItem.HeaderTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" FontSize="55" FontFamily="Segoe WP Bold" Foreground="Black" TextAlignment="Left" FontWeight="Normal" FontStyle="Italic" /> 
       </DataTemplate> 
      </controls:PanoramaItem.HeaderTemplate> 


     </controls:PanoramaItem> 

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

  • Нет связанных вопросов^_^