可替代超链接导航
本文关键字:导航 超链接 | 更新日期: 2023-09-27 18:11:15
我正在使用WPF (.net 4.5目标),虽然我很习惯WPF,但这是我第一次使用页面/导航模型。
我看到导航到一个页面,我可以做一些非常简单的事情(使用超链接),但这是非常远,我想要的风格方面(我宁愿从一个按钮开始)。是否有超链接的替代方案,或者我最好的选择是使用按钮+代码来导航?
我的目标是在统一网格中提供样式按钮和图标作为超链接,该网格将整个页面作为主页
在Silverlight/WP中,有HyperlinkButton
,这正是您所要求的,但显然在WPF中不存在。所以,似乎你最好的选择是使用常规按钮,以及NavigationService.Navigate
在它的命令。像这样:
<Button Content="Navigate" Command="{Binding NavigateCommand}"
CommandParameter="/Views/SomePage.xaml" />
那么NavigateCommand
将是一个标准的DelegateCommand,使用参数作为URI:
public class MyViewModel : ViewModelBase
{
public ICommand NavigateCommand { get; private set; }
public MyViewModel()
{
NavigateCommand = new DelegateCommand<string>(url => {
var uri = new Uri(url, UriKind.Relative);
NavigationService.Navigate(uri);
});
}
}
你可能想写你自己版本的HyperlinkButton,就像这样:
public class HyperlinkButton : Button
{
public string NavigateUri { get; set; }
protected override void OnClick(EventArgs e)
{
if (NavigateUri != null)
{
var uri = new Uri(NavigateUri, UriKind.Relative);
NavigationService.Navigate(uri);
}
}
}