Каков самый простой способ установить размер шрифта заголовка панорамы один раз, чтобы его можно было использовать для всех заголовков элементов в моем приложении?Как изменить размер шрифта заголовка Panorama?
ответ
Невозможно автоматически сделать это для всех заголовков в вашем приложении. Вам нужно будет установить стиль для каждого из них.
Неявное моделирование входит в обновление 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>
Вы можете создать свой собственный контроль 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 ,
Может быть, вы могли бы попытаться положить это в рамках <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
Это был сложный вопрос для меня. Однако я нашел довольно простое решение, чтобы позаботиться об этом для каждого элемента головы, который вы хотите изменить размер/шрифт/шрифт ... так далее. Я добавил фрагмент из текущего проекта, над которым я работал. Обратите внимание на часть 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>
«set style»: вы имеете в виду набор DataTemplate для HeaderTemplate? Если это так, мне нужно создать 4 DataTemplates для каждого из моих 4 элементов панорамы, потому что каждый заголовок элемента отличается? Или я могу каким-то образом привязать один DataTemplate к свойству PanoramaItem.Header? – Buju
ah thx. Я потерял часть с Text = "{Binding}" ... Я не знал, как получить доступ к строке заголовка изнутри DataTemplate. Есть ли способ посмотреть, какие свойства я могу привязать к данным в DataTemplate, если что-то подобное происходит со мной снова? – Buju