首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight:在ScaleTransform之后居中

Silverlight:在ScaleTransform之后居中
EN

Stack Overflow用户
提问于 2010-02-24 04:10:36
回答 1查看 1.9K关注 0票数 2

我从这篇文章中学到了如何在ScrollViewer中缩放元素后显示滚动查看器的滚动条:http://www.eightyeightpercentnerd.dreamhosters.com/?p=92

现在,我正在尝试让缩放的对象(在本例中是画布)在ScrollViewer中正确居中。我将在这里让图片讲述我的故事(请在Screencast.com清除我的文件之前帮助我)。;

我的XAML:

代码语言:javascript
复制
<ScrollViewer x:Name="ScrollViewer" VerticalAlignment="Top"
    VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
    Width="300" Height="300" Margin="0" Padding="0" Background="White">

    <Canvas x:Name="DesignSurface" Background="Red">

        <Canvas x:Name="Surface" Background="Blue" Height="100" Width="100">
            <Canvas.RenderTransform>
                <TransformGroup>
                    <ScaleTransform x:Name="SurfaceScaleTransform" />
                </TransformGroup>
            </Canvas.RenderTransform>
            <!-- ... -->
        </Canvas>

    </Canvas>

</ScrollViewer>

在初始加载时,我的蓝色画布居中并处于100%:

减少50%后,蓝色画布仍居中:

增加400%并滚动以显示蓝色画布的左上角后:

增加400%并滚动以显示蓝色画布的右下角后:

所以我的问题很简单,我如何让蓝色画布在ScrollViewer或红色画布或其他任何东西中正确居中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-24 05:35:22

也许我误会你了,但是你有没有试过把RenderTransformOrigin设置到画布上?例如:

代码语言:javascript
复制
    <Canvas x:Name="Surface" Background="Blue" Height="100" Width="100" 
            RenderTransformOrigin="0.5, 0.5">
        <Canvas.RenderTransform>
            <TransformGroup>
                <ScaleTransform x:Name="SurfaceScaleTransform" />
            </TransformGroup>
        </Canvas.RenderTransform>
        <!-- ... -->
    </Canvas>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2321341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档