切换视图时不显示WPF图像

时间:2009-08-14 16:53:14

标签: wpf image xaml user-controls

我有以下WPF应用程序

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication1"        
    Title="Window1" Height="300" Width="300">
    <Grid>
        <TabControl>
            <TabItem Header="Test1">
                <local:ImageView />
            </TabItem>
            <TabItem Header="Test2">
                <local:ImageView />
            </TabItem>
            <TabItem Header="Test3">
                <local:ImageView />
            </TabItem>
        </TabControl>
    </Grid>
</Window>

ImageView是一个定义为

的UserControl
<UserControl x:Class="ImageView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Grid>
    <Image Source="pack://application:,,,/Resources/icon.png" Width="15" Height="15" />
    </Grid>
</UserControl>

当我在TabItems之间切换时,有时会显示图像,有时则不显示。为什么会这样?

1 个答案:

答案 0 :(得分:0)

为了记录,我能够通过将我的ImageView更改为

来解决这个问题
<UserControl x:Class="ImageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Grid>
    <Grid.Resources>
        <BitmapImage x:Key="IconImageSource" UriSource="pack://application:,,,/Resources/icon.png" />
    </Grid.Resources>

    <Image Source="{StaticResource IconImageSource}" Width="15" Height="15" />
</Grid>

但我仍然很好奇为什么第一种方法不起作用