Qual è il modo più semplice per impostare una volta la dimensione del carattere dell'intestazione dell'elemento panorama, in modo che possa essere utilizzata per tutte le intestazioni di articolo nella mia app?Come cambiare la dimensione del font dell'intestazione dell'oggetto Panorama?
risposta
Non c'è ancora un modo per farlo automaticamente per tutte le intestazioni nella tua app. Avrai bisogno di impostare lo stile per ognuno.
Lo stile implicito è in arrivo nell'aggiornamento di Mango e questo dovrebbe consentire di farlo in quel momento.
Aggiornamento
Ecco cosa puoi fare ora.
Creare uno stile modello globale per FontSzie che si desidera. Qualcosa di simile:
<Application.Resources>
<DataTemplate x:Key="MyItemHeaderTemplate">
<Grid>
<ContentPresenter>
<TextBlock Text="{Binding}" FontSize="20" />
</ContentPresenter>
</Grid>
</DataTemplate>
</Application.Resources>
Poi in ogni PanoramaItem che desidero avere stile in questo modo ho impostato il HeaderTemplate:
<controls:PanoramaItem Header="first" HeaderTemplate="{StaticResource MyItemHeaderTemplate}">
// ...
</controls:PanoramaItem>
È possibile creare il proprio controllo PanoramaItem e utilizzare generic.xaml per applicare la vostra abitudine Stile PanoramaItem.
public class MyPanoramaItem : Microsoft.Phone.Controls.PanoramaItem
{
public MyPanoramaItem()
{
DefaultStyleKey = typeof(MyPanoramaItem);
}
}
quindi si crea 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>
e quindi utilizzare la vostra abitudine Panorama in questo modo:
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>
più su generic.xaml e il suo utilizzo è possibile trovare here .
Forse si potrebbe provare a mettere questo sotto la <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>
Trovato qui: http://www.jstawski.com/archive/2010/10/25/change-windows-phone-7-panoramarsquos-control-title.aspx
Questa era stata una questione difficile anche per me. Tuttavia ho trovato una soluzione piuttosto semplice da occuparsi di questo per ogni oggetto principale che desideri ridimensionare/fontweight/font ... so-on. Ho inserito uno snippet di un progetto in corso su cui ho lavorato. Prendi nota della porzione xaml per i controlli: PanoramaItem.HeaderTemplate. Qui è dove il templete viene modificato per l'elemento di intestazione. In bocca al lupo!
<!--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 stile": intendi set DataTemplate per HeaderTemplate? In tal caso, devo creare 4 DataTemplates per ciascuno dei miei 4 articoli panoramici perché ogni intestazione è diversa? O posso in qualche modo associare un singolo DataTemplate alla proprietà PanoramaItem.Header? – Buju
ah thx. Mi mancava la parte con Text = "{Binding}" ... Non sapevo come accedere alla stringa di intestazione dall'interno del DataTemplate. C'è un modo per controllare quali proprietà posso catalogare nel DataTemplate se qualcosa di simile mi capita di nuovo? – Buju