1

私は動的に銀色の光でボタンを作成しています

                HistoryButtton = new Button();
                HistoryButtton.Content = "History";
                HistoryButtton.Height = GetPercentageValue(TotalHeight, 8);
                HistoryButtton.Width = GetPercentageValue(TotalHeight, 15);

私はこの解決策を試しました

    ImageBrush brush = new ImageBrush();
    brush.ImageSource = new BitmapImage(new Uri(@"Images/history.png", UriKind.Relative)); 
    HistoryButtton.Background = brush;

しかし、それは機能していません。私もこの解決策を試しました

   Uri uri = new Uri("/Images/history.png", UriKind.Relative);  
   BitmapImage imgSource = new BitmapImage(uri);
   Image image = new Image();
   image.Source = imgSource;
   HistoryButtton.Content = image;

しかし、この解決策も機能しません。助けてください。よろしくお願いします。

4

2 に答える 2

0

ここでの質問と他の回答の1つは同じ問題で私を助けましたが、私が見逃したいくつかの本当に単純なことのために、私はまだしばらくの間(実際には、しばらくの間)これに苦労しました。これが私のために働いた完全なコードです:

Dim b As New Button
Dim uri As New Uri("/<project name>;component/<path to image>", UriKind.Relative)
Dim imgSource As New Imaging.BitmapImage(uri)
Dim image As New Image()
image.Source = imgSource
b.Content = image

私がこれをすぐに理解するのを妨げた2つのこと:

  1. <project name>イメージが存在するプロジェクトの名前であり、コードが存在するプロジェクトとは異なる場合があります。
  2. "component/"リテラル文字列です (プロジェクト内のフォルダーではありません)。私のイメージファイルの「ビルドアクション」は「リソース」に設定されています。

したがって、プロジェクト名が「MyProject」、画像名が「MyImage.png」で、画像が「MyProject」のフォルダー「MyFolder」にある場合、Uri コンストラクターに渡す正しい文字列は次のとおりです。

"/MyProject;component/MyFolder/MyImage.png"
于 2014-01-14T19:01:51.463 に答える
0

Uri の最初のパラメータを「/SolutionName;component/Images/history.png」のように変更してみてください

SolutionName をソリューション名に置き換えます。

于 2012-10-28T11:16:14.153 に答える