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中未显示按钮的背景图像


如何在运行时显示按钮图像?


繁花不似锦
浏览 1697回答 3
3回答

慕运维8079593

将构建操作更改为“资源”。另外,您的打包网址是错误的。可以使用:Source="pack://application:,,,/Resource/UserCost2013Open16.png"或简单地Source="/Resource/UserCost2013Open16.png"

温温酱

有2个解决方案:1:更改图像的设置:Build Action = ContentCopy to output directory = Copy if newerSource="pack://siteoforigin:,,,/Resources/UserCost2013Open16.png"2:在源路径中使用应用程序而不是siteoforigin时,必须采取以下可能的方式:a)图像将位于名为“ Resources”的子文件夹中,.exe文件将很小Source="pack://application:,,,/Resources/UserCost2013Open16.png"Build Action = ContentCopy to output directory = Copy if newerb)图像将包含在.exe中,并且不存在带有imagefile的子文件夹Source="pack://application:,,,/Resources/UserCost2013Open16.png"Build Action = ResourceCopy to output directory = Copy if newer

呼啦一阵风

就我而言,我将图像放在一个单独的项目中Common,并将图像Resources放在此项目中的文件夹下。在我的另一个项目中,我添加了对的引用Common并设置了图像的来源,如下所示:<Image Source="/Common;component/Resources/anImage.png"/>该图像具有Build Action设置为Resource与Copy to Output Directory对Do not copy。但是,由于某些奇怪的原因,直到我删除解决方案中的每个程序集文件并创建一个Clean Solutionand,该命令才起作用Build Solution。不知道为什么,但是一旦我重新构建了所有内容,它们便开始在运行时运行。我仍然不知道为什么它在设计时能正常工作。
打开App,查看更多内容
随时随地看视频慕课网APP