2012-01-14 103 views
0

我试图做一个加载图标在那里,一旦你的图标点击,它会调用以下处理:强制刷新视图?

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()之前的可见性。有没有办法强制页面重新加载?

+2

应该有无需刷新视图,按钮会自动成为倒塌一旦线路被击中。听起来就像这条线没有被达到。如果你在'refresh_btn_Tap'事件中放置了一个断点,它会被击中吗? – keyboardP 2012-01-14 17:44:30

回答

1

你可能在UI线程中做了一些长时间的工作refreshMix(),对吧?在后台线程中执行此操作,并且UI线程将自由更新页面。

+0

好的,我会试试 – Jin 2012-01-14 18:01:55

0

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

1

你需要一套前可见倒塌:

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