微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

silverlight-4.0 – SL4 TransformToVisual:“价值不在预期范围内.”

我有一个包含Canvas的ScrollViewer:

<ScrollViewer x:Name="scrollViewer" Margin="0" Grid.RowSpan="2" >
<i:Interaction.Triggers>
<!--    stuff-->
</i:Interaction.Triggers>
<Border>
    <Canvas x:Name="MapCanvas" Background="{Binding BackgroundColor}" Width="7200" Height="3200" >
        <Canvas.RenderTransform>
            <ScaleTransform />
        </Canvas.RenderTransform>
        <i:Interaction.Behaviors>
        <!--            stuff-->
        </i:Interaction.Behaviors>

        <i:Interaction.Triggers>
        <!--            stuff-->
        </i:Interaction.Triggers>
    </Canvas>
</Border>

代码导致异常,“值不在预期范围内”.

var generalTransform = scrollViewer.TransformToVisual(MapCanvas);

关于导致这种情况的任何提示都将受到赞赏.查看在线帮助,我找不到TransformToVisual可能抛出的异常或原因的文档.

更新:有没有办法测试scrollViewer和/或MapCanvas以确保TransformToVisual调用成功?

解决方法

也许我完全错了,但我怀疑这可能是一个时间问题.

如果我做

private void UserControl_Loaded(object sender,System.Windows.RoutedEventArgs e)
{
    timer = new dispatcherTimer();
    timer.Interval = new TimeSpan(0,20);
    timer.Tick += (s,e2) =>
    {
        var generalTransform = scrollViewer.TransformToVisual(MapCanvas);
        timer.Stop();
    };
    timer.Start();
}

错误不再发生……

我想这是因为屏幕上没有“直观地”显示控件?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐