ResourceDirectonary
であなたの画像を参照できるようになり、あなたの画像を見つけることができるようになりました。
BuildAction="Resource"
を使用して画像をプロジェクトに追加したと仮定します。
この特定の行を見ると、UriKind.Absolute
の代わりにUriKind.Relative
を間違えて使用したと思います。
実際にはUri
文字列が "pack://"バラエティであるかのように、その第2のUriKind
パラメータを使用する必要は通常ありません。次に、相対または絶対値のどちらがロケータでエンコードされているか... ifあなたの文字列には "/"接頭辞が付いています。これは "絶対"を意味しますが、他のものは通常相対的なものです... "./"、 "../"などを使いたい場合はもっと明白です。
(そうしないと解釈しない限り、これはあなたがしたように見えます...それが働いていない理由です)。 "パック://" を使用してのヘルパーとして
// Uri uri = new Uri("pack://application:,,,/Images/globe.png", UriKind.Relative);
画像を参照するためにURIを...私はあなたが邪魔になった場合に備えて、さまざまな組み合わせのいくつかを表示するためのマトリックスを用意しました。
これは、リソースをアプリケーションにどのように提供するか、どのように参照するかによってイメージ "リソース"を参照するいくつかの異なる組み合わせを示しています(すべてのオプションではありません)。
4つのイメージが作成され、 "project"ノードの直下のファイルとして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>
あなたが使用してみました:新しいウリ( "パック://アプリケーション:,,, /画像/ globe.png"、UriKind.Absoluteを)。 ?... Relativeは正しいように見えません。 –