【问题标题】:Easily Zoom an Image in Silverlight 3 with slider control使用滑块控件在 Silverlight 3 中轻松缩放图像
【发布时间】:2010-06-14 17:54:54
【问题描述】:

简单的问题,

SilverLight 3 应用程序(无工具包)。 我想使用图像和滑块。 图像在加载时显示为适合屏幕,然后滑块必须在其值更改时放大和缩小图像。我不想使用其他任何东西,比如 deepzoom。如何做到这一点?

紧急,提前谢谢,

【问题讨论】:

    标签: silverlight zooming


    【解决方案1】:

    下面的xaml代码:

    <ScrollViewer x:Name="scroll"   HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
    <layout:LayoutTransformer x:Name="layout"  Background="{x:Null}" >
                                    <layout:LayoutTransformer.LayoutTransform>
                                        <ScaleTransform x:Name="contentScale" ScaleX="1.0" ScaleY="1.0" />
                                    </layout:LayoutTransformer.LayoutTransform>
    
                                    <Image x:Name="img"   Source="../pin.PNG"  >
    
                                    </Image>
                                </layout:LayoutTransformer>
                            </ScrollViewer>
    

    在滑块值更改事件上:

        this.contentScale.ScaleX = this.contentScale.ScaleY = e.NewValue;
        this.layout.ApplyLayoutTransform();
    

    LayoutTransformer 在工具包中,添加它的引用:

    System.Windows.Controls.Layout.Toolkit
    

    如果没有工具包,你可以做到,但它不能正常工作(它永远不会更新滚动查看器)...试试下面的一个:

    <ScrollViewer x:Name="scroll"   HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Themes:ThemeManager.StyleKey="TreeScrollViewer">
    
                                    <Image x:Name="img"   Source="../charge_chargeline.PNG"  >
                                        <Image.RenderTransform>
                                            <ScaleTransform x:Name="contentScale" ScaleX="1.0" ScaleY="1.0" />
                                        </Image.RenderTransform>
                                    </Image>
    
                            </ScrollViewer>
    

    在滑块值更改事件上:

        `this.contentScale.ScaleX = this.contentScale.ScaleY = e.NewValue`;
    

    希望对你有帮助:)....

    【讨论】:

    • 找不到 LayoutTransformer,我需要下载 SilverLight 工具包吗?请详细说明
    • 感谢 Malcom,在开发人员机器上安装工具包是否需要在最终安装 silverlight 应用程序的生产机器上进行任何额外的安装或修改?
    • 我希望当安装 silverlight 应用程序时,它也会将 dll 存储在某个 lib 文件夹或其他文件夹中,因此将此 dll 放入您的 globel lib 中(您将在其中放置其他所需的 dll)。因为最后一点是您必须将该 dll 物理存储在您的应用程序中。(那么它是否在生产机器或开发机器或任何其他机器上都没有关系)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多