【问题标题】:windows phone 7, Button template image source bindingwindows phone 7、Button模板图片源绑定
【发布时间】:2010-12-14 09:29:02
【问题描述】:

我在每个 PevotItem 中都有带有 ListBoxes 的 Pivot。我已经为 ListBoxes 中的项目制作了 Button 控件。有这些按钮的树 - 每个按钮都有不同的图像。但是,也许有一些方法可以制作一个 Button 并绑定图像源。我认为这会改善加载页面时间。

如果有任何答案,我将不胜感激。

这是我的代码:

    <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>

【问题讨论】:

    标签: templates binding button windows-phone-7 imagesource


    【解决方案1】:

    如果您发现一张图片(按钮大小)的加载时间足以导致页面打开延迟,也许可以将图片缩小到更适合该尺寸图片的尺寸。

    或者,也许做一些分析来确定实际花费时间来加载此页面..它可能不是大部分时间的图像。

    您可以使用调试输出和 TimeSpan 进行简单的分析,或者尝试使用 EQATEC 分析器之类的工具。

    【讨论】:

    • 我习惯于每次 Silverlight 加载页面时都必须解析 Xaml。所以当我有一个模板而不是树时,解析它应该花费更少的时间。我说的对吗?
    • 那个特定的优化是一个有趣的问题。正如我们所知,Pivot 延迟加载项目。有人可能会决定仔细研究一下并进行验证。我是分析的粉丝,除非有一个优化我知道会产生结果。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2011-06-04
      • 2011-10-02
      • 2011-06-20
      相关资源
      最近更新 更多