【问题标题】:How to know when all controls and templates are loaded (Windows Phone 7)如何知道所有控件和模板何时加载(Windows Phone 7)
【发布时间】:2011-05-14 06:52:48
【问题描述】:

我正在尝试延迟加载图像控件的图像源,但问题是我必须等待所有控件加载,以便我可以使用 VisualTreeHelper 访问图像控件(位于数据模板内)。

我尝试了 Loaded 事件,甚至是 LayoutUpdated,ApplyTemplate 就像在the manual of msdn 中一样,但是对于所有这些,当我尝试获取 Image Control 的容器时,它是 null

    var containerItem = FeedsPanorama.ItemContainerGenerator.ContainerFromIndex(selectedIndex);

    var imageControl = VisualElementHelper.FindName<Image>("ImageThumbnail", containerItem);

    new ImageUtility().GetImageAsyn(new Uri(selectedItem.SummaryImageLink, UriKind.Absolute), imageControl);

当我处理 FeedsPanaroma 的 Selection_Changed 事件时,相同的代码将起作用

【问题讨论】:

    标签: c# silverlight controls windows-phone-7 datatemplate


    【解决方案1】:

    您是否尝试过页面的 Loaded 事件?

    【讨论】:

    • 我试过了,还是不行:(。在所有控件加载之前调用
    • 有趣,还有相关控件的 Loaded 事件?
    • 是的,还有相关控件的 Loaded 事件。如果您阅读我发布的手动链接:“Silverlight 中 Loaded 事件的时间与 WPF 中 FrameworkElement.Loaded 事件的时间不同。具体来说,WPF Loaded 事件发生在应用模板之后。在 Silverlight 中,Loaded 事件不保证在应用模板后发生。"
    【解决方案2】:

    我试图解决这个问题,以便不必处理 Loaded 事件。我写了一个新的 ImageConverter 以便我可以使用该标签来替换 Image 标签。它就像一个魅力

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 2010-10-14
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多