0

我是 Silverlight 的新手。我正在尝试与inkpresenter 一起提供放大功能。我正在使用 Silverlight 4、c#、asp.net。我可以将滑块绑定到画布,它确实会放大,但我遇到了滚动查看器布局没有更新的问题。有很多帖子提到我需要使用布局转换。任何人都可以让我知道我做错了什么或任何其他建议。

<Slider x:Name="slider" Maximum="2" Minimum="0" Value="1" Width="100"/>
</StackPanel>

<ScrollViewer x:Name="scrollBar"  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Grid.Column="1" Margin="6,1,1,1" Grid.Row="1">
    <ScrollViewer.Content>
        <toolkit:LayoutTransformer Name="TheTransformer" Background="{x:Null}">
            <toolkit:LayoutTransformer.LayoutTransform>
                <ScaleTransform  x:Name="contentScale" ScaleX="{Binding ElementName=slider,Path=Value}" ScaleY="{Binding ElementName=slider,Path=Value}" />
            </toolkit:LayoutTransformer.LayoutTransform>

            <toolkit:LayoutTransformer.Content>
                <Canvas x:Name="cnsImageEditable" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" OpacityMask="#FFE89E9E">

                    <!--The following commented bit does work i can zoomin and out but scroller not updating -->                
                    <!--<Canvas.RenderTransform>
                        <ScaleTransform x:Name="scale" ScaleX="{Binding ElementName=slider,Path=Value}" ScaleY="{Binding ElementName=slider,Path=Value}"/>
                    </Canvas.RenderTransform>-->

                <InkPresenter x:Name="inkCanvas" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <Image x:Name="imgEditableImage" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"></Image>
                </InkPresenter>

                </Canvas>
            </toolkit:LayoutTransformer.Content>
        </toolkit:LayoutTransformer>
    </ScrollViewer.Content>
</ScrollViewer>

任何帮助都非常感谢

4

1 回答 1

0

查看https://stackoverflow.com/questions/9899729/layouttransformer-in-silverlight-not-working,为我工作。具体来说:

我发现 Silverlight 中的变换发生在 Layout 之后,所以我只更改了一次 CanvasWidth 属性,直到滚动条显示,然后缩放就可以完美地工作,

于 2012-08-22T07:28:07.687 回答