如何更改Panorama项目标题的字体大小?

时间:2011-05-16 14:39:08

标签: windows-phone-7 font-size panorama-control

设置全景项目标题字体大小的最简单方法是什么,以便它可以用于我的应用中的所有项目标题?

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:5)

这对我来说也是一个难题。但是我找到了一个非常简单的解决方案来处理每个你要调整大小/ headweight / font ...的头项目。我已经从我正在处理的当前项目中插入了一个片段。请注意控件的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>

答案 2 :(得分: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

答案 3 :(得分:1)

您可以创建自己的PanoramaItem控件并使用generic.xaml来应用自定义PanoramaItem样式。

public class MyPanoramaItem : Microsoft.Phone.Controls.PanoramaItem

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

然后创建Themes \ 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>

然后像这样使用自定义Panorama:

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