强制视图刷新?

时间:2012-01-14 17:36:17

标签: xaml windows-phone-7

我正在尝试加载图标,只要点击图标,它就会调用以下处理程序:

private void refresh_btn_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
     refresh_btn.Visibility = System.Windows.Visibility.Collapsed;
     loading_icon.Visibility = System.Windows.Visibility.Visible;
     refreshMix();
}

private void refreshMix()
{
    ...
    refresh_btn.Visibility = System.Windows.Visibility.Collapsed;
    loading_icon.Visibility = System.Windows.Visibility.Visible;
}

但是,在调用refreshMix()之前更改图标可见性后,视图似乎没有自动重新加载。有没有办法强制页面重新加载?

3 个答案:

答案 0 :(得分:1)

你可能在UI线程的refreshMix()做了一些冗长的工作,对吧?这在后台线程和UI线程中可以自由更新页面。

答案 1 :(得分:1)

您需要在可见之前设置折叠:

 control.Visibility = System.Windows.Visibility.Collapsed;
 control.Visibility = System.Windows.Visibility.Visible;

答案 2 :(得分:0)

在Silverlight中,没有页面或视图重新加载的概念。当您更改任何可视元素的属性时,它将在下次渲染时反映在屏幕上。