我有一个包含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 举报,一经查实,本站将立刻删除。