2017-02-14 4 views
0

私が作成したWPFユーザーコントロールライブラリを参照するメインのWPFアプリケーションがあります。ライブラリには、1つのユーザーコントロールとイメージフォルダ(ユーザーコントロールで使用されるイメージ)があります。ここで私は、ユーザーコントロールを持っているXAMLの一部です:ユーザーコントロールが参照アセンブリにあるときに画像がボタンに表示されない

<Button x:Name="button" Grid.Row="1" Grid.Column="0" Content="{StaticResource Subway}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="48" Height="48"/> 

<UserControl x:Class="Alstom.UserControls.MainToolbar" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:local="clr-namespace:Alstom.UserControls" 
     mc:Ignorable="d" 
     d:DesignHeight="120" d:DesignWidth="3440"> 
<UserControl.Resources> 
    <Image x:Key="Subway" Source="/images/MainToolbar/Subway.png"/> 
    <Image x:Key="Globe" Source="/images/MainToolbar/Globe.png"/> 
    <Image x:Key="Gavel" Source="/images/MainToolbar/Gavel.png"/> 
    <Image x:Key="Clipboard" Source="/images/MainToolbar/Clipboard.png"/> 
    <Image x:Key="EllipsisVertical" Source="/images/MainToolbar/EllipsisVertical.png"/> 
    <Image x:Key="Check" Source="/images/MainToolbar/Check.png"/> 
    <Image x:Key="Bell" Source="/images/MainToolbar/Bell.png"/> 

ユーザーコントロールは、私は次のように書いたボタン(私はStaticResourceとしてContentプロパティを定義したことに注意を持っています

私のソリューションでは、外部アセンブリを参照するメインWPFアプリケーションを作成しました。

<Window x:Class="MainToolBar.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:myMainToolbar="clr-namespace:Alstom.UserControls;assembly=Alstom.UserControls" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="auto" Width="3440" ScrollViewer.VerticalScrollBarVisibility="Visible"> 
<Grid> 
    <myMainToolbar:MainToolbar HorizontalAlignment="Left" VerticalAlignment="Top"/> 
</Grid> 

私はMainWindow.xamlをダブルクリックして、私はデザイナーで、ボタン上の画像が表示されない、また私はそれを実行したとき。

イメージを実行時に表示するには何が必要ですか?ユーザーコントロールプロジェクトでは、イメージにはビルドアクション=リソースがあります。しかし、そのうちの1つをEmbedded Resourceに変更しようとしましたが、それでも動作しませんでした。

私は間違っていますか?

答えて

1

てみリソースにイメージのビルドアクションを設定し、パッケージのURIを使用する:

<Image x:Key="Subway" Source="pack://application:,,,/YourAssemblyName;component/images/MainToolbar/Subway.png"/> 

があなたの組立/ WPFユーザーコントロールの実際の名前に「YourAssemblyName」を変更することを忘れないでください。図書館プロジェクトWPFで

パッケージのURI:フルリソースファイルのパックを持ってする必要はありません

<Image x:Key="Subway" Source="images/MainToolbar/Subway.png"/> 

https://msdn.microsoft.com/en-us/library/aa970069(v=vs.110).aspx

0

のように、イメージソースパスから先頭/の文字を削除しますXAMLのURIは、フレームワークによって自動的に導出されるためです。イメージファイルのビルドアクションは、依然としてリソースでなければなりません。

関連する問題