这可能是我想念的简单事情。 我有一个png文件,我想在我的WPF窗口中用作* Image *控件的源代码。 我通过Project Properties>添加了这个PNG文件。资源>添加现有文件,首先作为链接文件(然后当它不起作用时嵌入)。然后,我将XAML文件中的图像控件的* Source *添加到此。没有代码,只需点击即可。
令人讨厌的问题是,当我设计WPF窗口时,图像会显示出来。当我运行它时,它不会。什么都没有出现。
更新:以下添加XAML代码
<Window x:Class="Server.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SERVER" Height="467.91" Width="620.522">
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF080C59" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<Button x:Name="btnConnect" Content="Connect" HorizontalAlignment="Left" Height="30" Margin="425,34,0,0" VerticalAlignment="Top" Width="134" Click="btnConnect_Click"/>
<Button x:Name="btnDisconnect" Content="Disconnect" HorizontalAlignment="Left" Height="35" Margin="425,69,0,0" VerticalAlignment="Top" Width="134" Click="btnDisconnect_Click"/>
<TextBlock x:Name="txtLog" HorizontalAlignment="Left" Margin="416,160,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="161" Width="87" Background="#FFFFF5F5" Text="LOG:"/>
<TextBox x:Name="txtMsg" HorizontalAlignment="Left" Height="23" Margin="416,326,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="112"/>
<Button x:Name="btnSend" Content="Send" HorizontalAlignment="Left" Height="35" Margin="425,120,0,0" VerticalAlignment="Top" Width="134" Click="btnSend_Click"/>
<ListView x:Name="lsvClients" Height="67" Margin="46,212,260,0" VerticalAlignment="Top">
<ListView.View>
<GridView>
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>
<Image HorizontalAlignment="Left" Height="100" Margin="31,10,0,0" VerticalAlignment="Top" Width="101" Source="pack://siteoforigin:,,,/images/ServerMainLogo.png"/>
</Grid>
</Window>
我错过了什么? 感谢
答案 0 :(得分:11)
在XAML中指定图像URI时,通常不需要编写完整的URI。除了另一个答案中显示的完整Pack URI之外,您还应该能够写下这个:
<Image ... Source="images/ServerMainLogo.png"/>
但是,您必须确保图像文件位于Visual Studio项目中名为images
的文件夹中,并且其Build Action设置为Resource
,如this answer
或者,您可以将构建操作设置为Content
和复制到
输出目录到Copy always
或Copy if newer
。在这种情况下,图像不会作为资源嵌入到程序的程序集中,而只是复制到相对于可执行文件的目录。
XAML中的(相对)图像URI在两种情况下都有效。
答案 1 :(得分:3)
siteOfOrigin
(输出文件夹)所在的位置复制文件时,才应使用 executables
。对于资源,您应该使用application
代替。
Source="pack://application:,,,/images/ServerMainLogo.png"
请参阅此链接以进一步说明Pack URIs。
答案 2 :(得分:1)
在xaml中,选择了图像标记后,使用属性窗口选择Source下拉列表,因为现在图像显示在下拉列表中!这让visual studio为我格式化了字符串。字符串visual studio格式化
我的形象是:
Source="pack://application:,,,/FamilyExplorer;component/Resources/Folder.png"/>
FamilyExplorer
是我的项目名称,Resources/Folder.png
是图片的位置。