更改选项卡时刷新/重新加载MUI WPF页面

我正在使用Modern UI for WPF开发桌面应用程序。 当我转到新标签页时,我尝试刷新标签页,但我不能。

当我使用我的标签控制器转到另一个页面时,我想刷新我的MUI WPF标签页。

谁能帮我?

您可以使用SelectionChanged事件来处理此事件。 您可以使用SelectionChanged刷新MUI WPF标签页。

     

然后,您可以访问事件中的每个TabItem:

 private void MyTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e){ if (TabItem1.IsSelected){} if (TabItem2.IsSelected){} if (TabItem3.IsSelected){} } 

我不太确定你的意思是什么,但是通过在控件上调用InvalidateVisual(),你可以强制对它进行视觉刷新,如果那是你所追求的,因为它听起来你有一个WPF控件数据发生变化时不会更新。

根据MSDN文档 ,这个:

使元素的呈现无效,并强制执行完整的新布局。 布局周期完成后调用OnRender

例如:

  var grid = new Grid(); // Our grid should refresh after this, // although in normal circumstances it would by default regardless. grid.InvalidateVisual(); 

我希望这是有用的。

虽然选择的答案还可以,但它可能不是最好的方法。

MUI包括内容导航框架,该框架基于链接uris处理内容加载,卸载和历史导航。 如果您希望您的内容了解导航事件(例如加载和卸载的事件),则需要实现接口。

通过实现FirstFloor.ModernUI.Windows命名空间中提供的IContent接口,使您的内容导航可识别。

一个简单的例子是:

 public class MyContent : UserControl, IContent { public void OnFragmentNavigation(FragmentNavigationEventArgs e) { } public void OnNavigatedFrom(NavigationEventArgs e) { } public void OnNavigatedTo(NavigationEventArgs e) { //Refresh your page here } public void OnNavigatingFrom(NavigatingCancelEventArgs e) { // ask user if navigating away is ok if (ModernDialog.ShowMessage("Navigate away?", "navigate", MessageBoxButton.YesNo) == MessageBoxResult.No) { e.Cancel = true; } } }