我在项目中添加了breadcrumb组件,并尝试了一些方法,但在breadcrump上悬停时没有显示链接,无法导航回以前显示的文件夹。
我的面包屑代码在这里
<BreadcrumbBar
x:Name="FolderBreadcrumbBar"
ItemsSource="{x:Bind ViewModel.Breadcrumbs}"
ItemClicked="FolderBreadcrumbBar_ItemClicked">
<BreadcrumbBar.ItemTemplate>
<DataTemplate x:DataType="models:Breadcrumb">
<TextBlock Text="{x:Bind Label}"/>
</DataTemplate>
</BreadcrumbBar.ItemTemplate>
</BreadcrumbBar>
我试图启用超链接来导航到breadcrumb中的上一个文件夹级别,就像下面的示例
图像
单击Folder1时,它会导航回那个级别,但我的问题是Folder1上的超链接没有显示为触发我的onclick处理程序。
它没有突出显示鼠标悬停时的链接,如以下示例:
图像
有人能帮我哪里出了问题,或者我该如何做到这一点吗。提前谢谢。
您可以使用HyperlinkButton
。
.xaml
<BreadcrumbBar
x:Name="FolderBreadcrumbBar"
ItemsSource="{x:Bind ViewModel.Breadcrumbs}">
<BreadcrumbBar.ItemTemplate>
<DataTemplate x:DataType="models:Breadcrumb">
<HyperlinkButton
Content="{x:Bind Label}"
Click="HyperlinkButton_Click" />
</DataTemplate>
</BreadcrumbBar.ItemTemplate>
</BreadcrumbBar>
.xaml.cs
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
if (sender is HyperlinkButton hyperlinkButton &&
hyperlinkButton.DataContext is Breadcrumb breadcrumb)
{
}
}
另一个选项
根据要求,如果您需要使用BreadcrumbBar
中的ItemClicked
,您可以这样做。亮点将是低对比度。
<BreadcrumbBar
x:Name="FolderBreadcrumbBar"
ItemClicked="FolderBreadcrumbBar_ItemClicked"
ItemsSource="{x:Bind ViewModel.Breadcrumbs}">
<BreadcrumbBar.ItemTemplate>
<DataTemplate x:DataType="models:Breadcrumb">
<BreadcrumbBarItem Content="{Binding}">
<BreadcrumbBarItem.ContentTemplate>
<DataTemplate x:DataType="models:Breadcrumb">
<TextBlock Text="{x:Bind Label}" />
</DataTemplate>
</BreadcrumbBarItem.ContentTemplate>
</BreadcrumbBarItem>
</DataTemplate>
</BreadcrumbBar.ItemTemplate>
</BreadcrumbBar>