Как изменить размер шрифта заголовка элемента Panorama? - PullRequest
9 голосов
/ 16 мая 2011

Какой самый простой способ установить размер шрифта заголовка элемента панорамы один раз, чтобы его можно было использовать для всех заголовков элементов в моем приложении?

Ответы [ 4 ]

23 голосов
/ 16 мая 2011

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

В обновлении Mango появится неявное оформление, и это должно позволить это сделать тогда.1007 * Вот что вы можете сделать сейчас.

Создайте глобальный стиль шаблона для 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>
5 голосов
/ 30 апреля 2012

Это был сложный вопрос и для меня.Однако я нашел довольно простое решение позаботиться об этом для каждого элемента заголовка, размер которого вы хотите изменить / fontweight / 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 голосов
/ 18 января 2012

Может быть, вы могли бы попытаться вставить это под <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

1 голос
/ 16 мая 2011

Вы можете создать свой собственный элемент управления 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 и его использовании вы можете найти здесь .

...