私はそれぞれのPevotItemにリストボックスを持つPivotを持っています。 ListBoxのアイテムをアニメーション化するためのButtonコントロールを作成しました。それらのボタンのツリーがあります - それぞれに異なるイメージがあります。しかし、ボタンを1つ作成して画像ソースをバインドする方法があります。私はそれがページの読み込み時間を改善すると思う。windows phone 7、ボタンテンプレートイメージソースバインディング
私はどんな答えにも感謝します。ここで
は私のコードです:
<DataTemplate x:Key="pageItemTemplate">
<Button Content="{Binding name}" Margin="0,0,0,20" Style="{StaticResource PageListItemButton}"/>
</DataTemplate>
<Style x:Key="PageListItemButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<StackPanel x:Name="stackPanel" Orientation="Horizontal">
<StackPanel.Projection>
<PlaneProjection CenterOfRotationY="0" CenterOfRotationX="1"/>
</StackPanel.Projection>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:0.05">
<VisualTransition.GeneratedEasingFunction>
<CircleEase EasingMode="EaseInOut"/>
</VisualTransition.GeneratedEasingFunction>
</VisualTransition>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0" To="15" Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" Storyboard.TargetName="stackPanel" d:IsOptimized="True"/>
<DoubleAnimation Duration="0" To="0.7" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="stackPanel" d:IsOptimized="True"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Image Source="Images/MainPage/page.png" Height="40" Stretch="Fill" Width="40"/>
<ContentPresenter VerticalAlignment="Bottom"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="FontFamily" Value="/BestNote;component/Fonts/Fonts.zip#Diavlo Bold"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontSize" Value="24"/>
<Setter Property="Foreground" Value="#FF292929"/>
</Style>
私はSilverlightがページをロードするとき、それぞれの時間はそれがXAMLを解析するために持っている事に使用します。だから私は木の代わりに1つのテンプレートを持っているとき、それはそれを解析するために短い時間を取る必要があります。私は正しい? –
その特定の最適化は興味深い質問です。私たちが知っているようにPivotは遅延アイテムを読み込みます。誰かがこれを詳しく見て検証することに決めます。私はプロファイリングのファンですが、私が結果を生むことがわかっている特定の最適化がない限り。 –