2011-05-16 9 views

答えて

23

あなたのアプリのすべてのヘッダーに対して、それを自動的に行う方法はありません。それぞれのスタイルを設定する必要があります。

明示的なスタイリングがマンゴーアップデートに入っているので、これを実行することができます。

更新
ここでは何ができるのですか?

必要なFontSzieのグローバルテンプレートスタイルを作成します。何かのように:あなたはあなた自身のPanoramaItemコントロールを作成し、カスタムを適用するためにgeneric.xamlを使用することができます

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

"set style":DataTemplateをHeaderTemplateに設定することを意味しますか?その場合は、各アイテムヘッダーが異なるため、4つのパノラマアイテムごとに4つのDataTemplateを作成する必要がありますか?または、私は何とか1つのDataTemplateをPanoramaItem.Headerプロパティにバインドできますか? – Buju

+0

ああthx。私はText = "{Binding}"でこの部分を見逃していました... DataTemplate内部からヘッダー文字列にアクセスする方法はわかりませんでした。このようなことが再び私に起こったら、DataTemplateでデータバインディングできるプロパティを調べる方法はありますか? – Buju

1

:私はHeaderTemplateを設定し、このようにスタイリングしていることを望むすべてのPanoramaItemで次に

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

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> 

\テーマを作成し、次のようにカスタムパノラマを使用する:あなたはhereを見つけることができます

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およびその使用方法の詳細。

5

これは、同様に私にとって難しい問題でした。しかし、私はあなたが/ fontweight/font ... so-sizeのサイズを変更したいそれぞれのヘッド項目についてこれを処理する非常に簡単な解決策を見つけました。私は現在取り組んでいるプロジェクトからスニペットを挿入しました。コントロールの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>