首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight:什么时候ActualWidth不是0?

Silverlight:什么时候ActualWidth不是0?
EN

Stack Overflow用户
提问于 2009-12-11 18:17:14
回答 3查看 1.5K关注 0票数 1

如果我将回调附加到主用户控件的loaded事件并检查网格列的ActualWidth,则该值仍为0。我觉得这很奇怪,因为文档中说:“在最终渲染之前,但在布局系统计算了渲染所需的所有值之后,就会引发已加载的事件。”

基本上我需要ActualWidth,这样我就可以设置动画的' to‘值(这样就会有从0到实际宽度的动画)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-15 15:31:32

ActualWidthActualHeight值在SizeChanged事件期间可用。如果需要,你可以在你的应用程序调整大小时更新你的计算。

I posted about this recently使用事件在屏幕上随机放置元素

票数 3
EN

Stack Overflow用户

发布于 2009-12-11 18:54:32

我认为你可能试图以错误的方式解决问题。

最好的方法是对添加到GridRenderTransform属性中的ScaleTransform进行动画处理。下面的示例就是这样做的:

代码语言:javascript
复制
   <Grid x:Name="LayoutRoot">
        <Grid.Triggers>
            <EventTrigger RoutedEvent="Grid.Loaded">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="MyScaleTransform" Storyboard.TargetProperty="ScaleX" From="0" To="1" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>
        </Grid.Triggers>

        <Grid Background="Blue" >
            <Grid.RenderTransform>
                <ScaleTransform x:Name="MyScaleTransform"  />
            </Grid.RenderTransform>
        </Grid>
    </Grid>
票数 1
EN

Stack Overflow用户

发布于 2009-12-15 15:32:49

是否可以挂钩或重写控件中的LayoutUpdated事件,而不是Loaded事件?您必须添加一些额外的逻辑,以确保您的动画只在适当的时间运行一次,但这可能会为您提供所需的额外灵活性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1887108

复制
相关文章

相似问题

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