在WPF按钮中的图像在运行时不可见

所有的,我有以下开始到一个小的应用程序检查.resx文件的嵌入括号的一致性(以便不匹配的“... {0}”字符串的运行时错误不会发生)。 我对MainWindow.xaml有以下XAML,并且我的特殊问题与要在按钮上显示的图像有关

<Window x:Class="ResxChecker.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="174.383" Width="495.869">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="350*"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="30*"/>
        </Grid.RowDefinitions>
        <Label Content="Select .resx file:" HorizontalAlignment="Left" Margin="10,0,0,0" VerticalAlignment="Top" Height="24" Width="Auto" Grid.ColumnSpan="1"/>
        <TextBox Grid.ColumnSpan="2" HorizontalAlignment="Stretch" Margin="10,0,0,0" Grid.Row="1" TextWrapping="Wrap" Text="" VerticalAlignment="Top"/>
        <Button Grid.Column="2" HorizontalAlignment="Right" Margin="5,0,10,0" Grid.Row="1">
            <Image VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="16 " Width="16" Source="pack://siteoforigin:,,,/Resources/UserCost2013Open16.png"/>
        </Button>
    </Grid>
</Window>

图像具有“构建操作=资源”,“复制到输出目录=不复制” - 图像在设计器中显示,但不在运行时显示。 我看到以下问题并阅读相关答案,但没有一个能够解决问题:

  • WPF控件图像在应用程序使用时不显示

  • 在WPF图像问题(图像不显示)

  • 在WPF中不显示按钮的背景图像

  • 如何让运行时出现按钮图像?


    将构建操作更改为“资源”。 你的包装网址也是错误的。 可以使用:

    Source="pack://application:,,,/Resource/UserCost2013Open16.png"
    

    或干脆

    Source="/Resource/UserCost2013Open16.png"
    

    有2个解决方案:

    1:更改图像的设置:

    Build Action = Content
    Copy to output directory = Copy if newer
    Source="pack://siteoforigin:,,,/Resources/UserCost2013Open16.png"
    


    2:在源路径中使用应用程序代替siteoforigin时,您必须采取以下可能的方式:

    a)图像将位于名为“Resources”的SubFolder中,并且.exe​​文件将很小

    Source="pack://application:,,,/Resources/UserCost2013Open16.png"
    Build Action = Content
    Copy to output directory = Copy if newer
    

    b)图像将包含在.exe中,并且不存在具有imagefile的子文件夹

    Source="pack://application:,,,/Resources/UserCost2013Open16.png"
    Build Action = Resource
    Copy to output directory = Copy if newer
    

    在我的情况下,我有一个名为Common的单独项目中的图像,图像位于此项目中名为Resources的文件夹下。 在我的另一个项目中,我添加了对Common的引用并设置图像的来源,如下所示:

    <Image Source="/Common;component/Resources/anImage.png"/>
    

    图像将Build Action设置为ResourceCopy to Output DirectoryDo not copy 。 但是,由于一些奇怪的原因,直到我删除了解决方案中的每个组件文件并制作了Clean SolutionBuild Solution它才运行正常。 不知道为什么,但是一旦我重建了所有东西,它在运行时就开始工作了。 尽管如此,我仍然无法弄清楚它为什么在Design Time工作。

    链接地址: http://www.djcxy.com/p/50433.html

    上一篇: Image in WPF Button not Visible at Runtime

    下一篇: How to reference image resources in XAML?