正如您能夠通過您的ResourceDirectonary
引用您的圖像,表明您的圖像能夠被找到。
將假設您使用BuildAction="Resource"
將圖像添加到您的項目。
看着這條線,我認爲你錯誤地使用了UriKind.Relative
而不是UriKind.Absolute
。
事實上,它通常不需要使用第二UriKind
參數,因爲如果你的Uri
字符串是的「包://」的品種,那麼無論是相對或絕對的定位器編碼...或者,如果你的字符串有一個「/」前綴,這意味着「絕對」,而其他任何東西通常都是相對的......如果你想通過使用「./」,「../」等,你可以更明顯。
(除非你讓它解釋,否則,這是你似乎做了...這就是爲什麼它不工作)。
// Uri uri = new Uri("pack://application:,,,/Images/globe.png", UriKind.Relative);
上使用輔助 「包://」 URI來引用圖像...我想出了一個矩陣來展示一些不同的組合,以防你遇到了一個陷阱。
這顯示了引用圖像「資源」的一些不同組合,具體取決於您如何將該資源提供給應用程序以及如何引用它(並非所有選項)。
創建了4個圖像,並將其添加爲:image1.bmp,image2.bmp,image3.bmp,image4.bmp,直接作爲「項目」節點下的文件。構建操作被設置爲4個不同的值。
然後探索一些引用「圖像」的不同方法。
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="600" Width="1200">
<Window.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="4"/>
<Setter Property="FontSize" Value="14"/>
</Style>
<BitmapImage x:Key="bitmap1" UriSource="Image1.bmp"/>
<BitmapImage x:Key="bitmap2" UriSource="Image2.bmp"/>
<BitmapImage x:Key="bitmap3" UriSource="Image3.bmp"/>
<BitmapImage x:Key="bitmap4" UriSource="Image4.bmp"/>
<Image x:Key="image1" Source="Image1.bmp"/>
<Image x:Key="image2" Source="Image2.bmp"/>
<Image x:Key="image3" Source="Image3.bmp"/>
<Image x:Key="image4" Source="Image4.bmp"/>
</Window.Resources>
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Background="LightYellow" Grid.Column="0" Grid.Row="1">BuildAction=<LineBreak/>"Resource"</TextBlock>
<TextBlock Background="LightYellow" Grid.Column="0" Grid.Row="2">BuildAction=<LineBreak/>"Embedded Resource"</TextBlock>
<TextBlock Background="LightYellow" Grid.Column="0" Grid.Row="3">BuildAction=<LineBreak/>"Content"</TextBlock>
<TextBlock Background="LightYellow" Grid.Column="0" Grid.Row="4">BuildAction=<LineBreak/>"Content (copied to output)"</TextBlock>
<TextBlock Background="PeachPuff" Grid.Column="1" Grid.Row="0">pack://application:,,,/</TextBlock>
<TextBlock Background="PeachPuff" Grid.Column="2" Grid.Row="0">pack://application:,,,/WpfApplication4;component/</TextBlock>
<TextBlock Background="PeachPuff" Grid.Column="3" Grid.Row="0">pack://siteoforigin:,,,/</TextBlock>
<TextBlock Background="PeachPuff" Grid.Column="4" Grid.Row="0">Image<LineBreak/>referencing BitmapImage<LineBreak/>via {StaticResource}<LineBreak/>referencing "Resource"</TextBlock>
<TextBlock Background="PeachPuff" Grid.Column="5" Grid.Row="0">ContentPresenter<LineBreak/>referencing Image<LineBreak/>via {StaticResource}<LineBreak/>referencing "Resource"</TextBlock>
<Image Grid.Column="1" Grid.Row="1" Source="pack://application:,,,/Image1.bmp"/>
<Image Grid.Column="1" Grid.Row="2" Source="pack://application:,,,/Image2.bmp"/>
<Image Grid.Column="1" Grid.Row="3" Source="pack://application:,,,/Image3.bmp"/>
<Image Grid.Column="1" Grid.Row="4" Source="pack://application:,,,/Image4.bmp"/>
<Image Grid.Column="2" Grid.Row="1" Source="pack://application:,,,/WpfApplication4;component/Image1.bmp"/>
<Image Grid.Column="2" Grid.Row="2" Source="pack://application:,,,/WpfApplication4;component/Image2.bmp"/>
<Image Grid.Column="2" Grid.Row="3" Source="pack://application:,,,/WpfApplication4;component/Image3.bmp"/>
<Image Grid.Column="2" Grid.Row="4" Source="pack://application:,,,/WpfApplication4;component/Image4.bmp"/>
<Image Grid.Column="3" Grid.Row="1" Source="pack://siteoforigin:,,,/Image1.bmp"/>
<Image Grid.Column="3" Grid.Row="2" Source="pack://siteoforigin:,,,/Image2.bmp"/>
<Image Grid.Column="3" Grid.Row="3" Source="pack://siteoforigin:,,,/Image3.bmp"/>
<Image Grid.Column="3" Grid.Row="4" Source="pack://siteoforigin:,,,/Image4.bmp"/>
<Image Grid.Column="4" Grid.Row="1" Source="{StaticResource bitmap1}"/>
<Image Grid.Column="4" Grid.Row="2" Source="{StaticResource bitmap2}"/>
<Image Grid.Column="4" Grid.Row="3" Source="{StaticResource bitmap3}"/>
<Image Grid.Column="4" Grid.Row="4" Source="{StaticResource bitmap4}"/>
<ContentPresenter Grid.Column="5" Grid.Row="1" Content="{StaticResource image1}"/>
<ContentPresenter Grid.Column="5" Grid.Row="2" Content="{StaticResource image2}"/>
<ContentPresenter Grid.Column="5" Grid.Row="3" Content="{StaticResource image3}"/>
<ContentPresenter Grid.Column="5" Grid.Row="4" Content="{StaticResource image4}"/>
</Grid>
</Window>
你有沒有嘗試使用新的URI( 「包://應用:,,, /圖片/ globe.png」,UriKind.Absolute); ?....親戚看起來不對。 –