WPF应用程序中的图像在导航离开后消失



我在WPF应用程序中遇到了一个有趣的现象。

我有两个受影响的独立视图——一个允许编辑统计信息,另一个允许修改模板。在这两个视图中,我都有一个导航栏,它允许用户在搜索结果中前后导航,并且我使用带有图像的按钮作为"上一步/下一步"UI。如果我浏览统计数据,然后浏览模板,图像会显示得很好;然而,如果我回到统计数据,图像不再出现,但按钮和导航可以工作。如果我回到模板,图像仍然存在。如果我先做模板,然后做统计,再回到模板,同样的行为顺序仍然存在——统计会保留图像。因此,这似乎与秩序有关,而与观点无关。

我已经将图像添加到我的项目中,并将Build Action设置为Resource。我在我的ResourceDictionary中引用了它们,如下所示:

 <Image x:Key="ico_Right" Source="/GOKOMS.Home;component/Images/nav_single_right.png" />

在我的观点中,我称之为

<Button Content="{StaticResource ico_Right}" Width="35" Height="35"
        Visibility="{Binding Vis_Next, UpdateSourceTrigger=PropertyChanged}"
        ToolTip="Next Record"
        Command="{Binding NavCommand}"
        CommandParameter="Next"
        />

我知道这不是按钮本身所显示的绑定;为了确定起见,我甚至删除了它。感觉这是相关的代码,但如果需要,我可以添加更多。以前有人经历过这样的事情吗?

这是因为您的图像控制资源只能附加到视觉树中的一个位置,而您正试图将其附加到两个不同的按钮元素(在不同的视图上)

你可以尝试重组你的视图,使导航菜单只有一个实例,也可以创建多个图像资源,或者你可以使用BitmapImage资源:

资源:

<BitmapImage x:Key="ico_Right" UriSource="/GOKOMS.Home;component/Images/nav_single_right.png" />

按钮:

<Button Width="35" Height="35"
        Visibility="{Binding Vis_Next, UpdateSourceTrigger=PropertyChanged}"
        ToolTip="Next Record"
        Command="{Binding NavCommand}"
        CommandParameter="Next">
    <Image Source="{StaticResource ico_Right}" />
</Button>

最新更新