如何通过代码选中ModernTab中动态添加的标签页?
解决ModernTab添加新Link后自动选中/跳转的问题
嗨,我来帮你搞定这个需求!其实不需要绕到Frame那里,ModernTab控件本身就提供了直接选中指定Link的方式,而且非常简单:
方法一:直接设置SelectedLink属性(推荐)
当你动态添加完Link之后,直接把ModernTab的SelectedLink赋值为你刚创建的那个Link对象即可,它会自动触发导航并选中该标签页:
var link = new FirstFloor.ModernUI.Presentation.Link { DisplayName = "Otra Ventana", Source = new Uri("/pages/operations/confirm.xaml", UriKind.RelativeOrAbsolute) }; mtabs.Links.Add(link); // 关键代码:选中并跳转到新添加的标签页 mtabs.SelectedLink = link;
这个方法的优势在于直接利用ModernTab自身的状态管理,代码简洁且逻辑清晰,完全匹配你的场景。
方法二:通过导航框架触发(适合需要导航事件的场景)
如果你的业务逻辑需要触发导航相关的事件,也可以通过NavigationHelper找到当前的ModernFrame,然后调用导航方法,ModernTab会自动匹配对应的Link并选中:
var link = new FirstFloor.ModernUI.Presentation.Link { DisplayName = "Otra Ventana", Source = new Uri("/pages/operations/confirm.xaml", UriKind.RelativeOrAbsolute) }; mtabs.Links.Add(link); // 获取当前页面的ModernFrame var frame = FirstFloor.ModernUI.Windows.Navigation.NavigationHelper.FindFrame(null, this); if (frame != null) { // 导航到目标页面,ModernTab会自动选中对应的Link frame.Navigate(link.Source); }
不过第一种方法是最直接高效的,推荐优先使用。
内容的提问来源于stack exchange,提问作者medow
相关产品推荐
相关产品推荐

