4

次のディレクトリ構造があります

Project
\Images
 +view.png
control.xaml

コントロールには、次の XAML で定義されたボタンがあります。

<Button Click="Search"
        Grid.Column="1"
        Margin="0,5,5, 0"
        HorizontalAlignment="Right">
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Image Source="pack://application:,,,/images/view.png"
                   Width="16"
                   Height="16"
                   ToolTip="Search"
                   Cursor="Hand"
                   Opacity="0.8" />
        </ControlTemplate>
    </Button.Template>
</Button>

ただし、このパック URI メソッドも "/images/view.png" も機能していません。私が理解しているように、これはこの質問が提起するのと同じ問題です。ただし、同じエラーが発生します。紛らわしいのは、Visual Studio 2008 のデザイナーでは、画像が正しくレンダリングされることですが、InitializeComponent() 呼び出しの呼び出しで次のようになります。

属性 'Source' の文字列 'pack://application:,,,/images/view.png' をタイプ 'System.Windows.Media.ImageSource' のオブジェクトに変換できません。リソース 'images/view.png' が見つかりません。マークアップ ファイル 'RecapSpecEditControl;component/modaltreadgroupdatadialog.xaml' 行 61 位置 40 のオブジェクト 'System.Windows.Controls.ControlTemplate' でエラーが発生しました。

宣言しなければならない名前空間があるのではないかと思いましたが、msdn サイトによると、そのようなことをする必要はないと考えています。

4

3 に答える 3

9

私は実際にこれを機能させましたが、ソースを「/ProjectName;component/images/view.png」に設定する必要がありました質問で引用しました。

于 2009-12-09T16:30:45.423 に答える
6

「view.png」の Build Action を Content ではなく Resource に設定すると、この問題は解消されます。この方法で問題を再現できました。リソースとして設定すると正しく動作します。

于 2009-12-09T15:47:25.167 に答える
-3

Xaml.VB

アプリケーションフォルダとデザインページから画像を呼び出す

Private Sub LoadImages()
        Dim strUri As String
        strUri = AppDomain.CurrentDomain.BaseDirectory() & "\NavigationImages\settingsicon.png"
        Image2.Source = New BitmapImage(New Uri(strUri))
    End Sub

Xaml.VB でのページの読み込み

Call LoadImages()

Xaml デザイン ページ

Image Name="Image2"Height="32" HorizontalAlignment="Left" 
于 2011-03-17T09:50:37.720 に答える