为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
繁花不似锦 2019-11-19 10:17:12
总体而言,我从一个小型应用程序开始,该应用程序检查.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中未显示按钮的背景图像如何在运行时显示按钮图像?
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

将构建操作更改为“资源”。另外,您的打包网址是错误的。可以使用:


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

或简单地


Source="/Resource/UserCost2013Open16.png"


查看完整回答
反对 回复 2019-11-19
?
温温酱

TA贡献1752条经验 获得超4个赞

有2个解决方案:


1:更改图像的设置:


Build Action = Content

Copy to output directory = Copy if newer

Source="pack://siteoforigin:,,,/Resources/UserCost2013Open16.png"



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


a)图像将位于名为“ Resources”的子文件夹中,.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


查看完整回答
反对 回复 2019-11-19
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

就我而言,我将图像放在一个单独的项目中Common,并将图像Resources放在此项目中的文件夹下。在我的另一个项目中,我添加了对的引用Common并设置了图像的来源,如下所示:


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

该图像具有Build Action设置为Resource与Copy to Output Directory对Do not copy。但是,由于某些奇怪的原因,直到我删除解决方案中的每个程序集文件并创建一个Clean Solutionand,该命令才起作用Build Solution。不知道为什么,但是一旦我重新构建了所有内容,它们便开始在运行时运行。我仍然不知道为什么它在设计时能正常工作。


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 1565 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信