如何解决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可能引发哪些异常或原因的文档。
更新:有q种方法可以测试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();
}
该错误不再发生...
我猜是因为没有在屏幕上“直观地”显示控件?
,您只能在屏幕上可见且已布局的元素上调用TransformToVisual
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。