导航后,WPF应用程序中的图像消失

时间:2016-04-05 12:37:14

标签: c# wpf xaml

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

我有两个独立的视图受影响 - 一个允许编辑统计信息,另一个允许编辑模板。在这两个视图中,我有一个导航栏,允许用户在搜索结果中向前和向后导航,我使用带有图像的按钮用于Back / Next 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"
        />

我知道这不是绑定本身出现的绑定;我甚至删除了那只是为了确定。感觉这是相关的代码,但如果需要我可以添加更多。以前有没有人经历过这样的事情?

1 个答案:

答案 0 :(得分:2)

这是因为您的图像控件资源只能附加到可视树中的一个位置,并且您尝试将其附加到2个不同的按钮元素(在不同视图上)

您可以尝试重构视图,以便只有一个导航菜单实例,或者您可以创建多个图像资源,或者您可以改为使用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>