2012-11-23 21 views
8

C#コードでImageBrushを作成する方法XAMLで

<Rectangle Stroke="Aqua" Opacity="0.7" StrokeThickness="10" Canvas.Left="24" Canvas.Top="22" Height="86" Width="102"> 
     <Rectangle.Fill> 
      <ImageBrush ImageSource="C:\Users\xiaorui.dong\Pictures\profile.jpeg"></ImageBrush> 
     </Rectangle.Fill> 
    </Rectangle> 

XAMLが正常に動作しますが、C#コードで上記ImageBrushを作成する方法:

C#は、このようにする必要があります

Rectangle rectangle = new Rectangle(); 
rectangle.StrokeThickness = 10; 
rectangle.Height = 200; 
rectangle.Width = 100; 
rectangle.SetValue(Canvas.LeftProperty, 100d); 
rectangle.SetValue(Canvas.TopProperty, 100d); 
rectangle.Fill = new ImageBrush(new BitmapImage(new Uri(@"C:\Users\xiaorui.dong\Pictures\profile.jpeg"))); 
+3

例外はありますか? – Rafael

+1

あなたのコードは知られているURLで私のために働きます.jpjpの代わりに.jpegを使用したことを確信していますか。 –

答えて

13

UriKindパラメータを指定していないため、画像を見つけることが問題であると推測しています。 UriにパラメータとしてUriKind.Relativeを与えてみてください。

rectangle.Fill = new ImageBrush(new BitmapImage(
    new Uri(@"C:\Users\xiaorui.dong\Pictures\profile.jpeg", UriKind.Relative))); 
8

C#では、あなたがそれを使用することができますように、最初のものは、あなたがそれを使用しているように、C#で同じコードを使用し、その後XAMLから塗りつぶしを削除しています。それは機能しなければならない。

ImageBrush ib = new ImageBrush(); 

ib.ImageSource = new BitmapImage(new Uri("your path",UriKind.Relative)); 
rectangle.Fill = ib; 
2

このコードでは、UWPプロジェクトの一部である画像「Assets/image.png」を使用してImageBrushを作成します。相対パスはImageBrushのUWPバージョンでは利用できません。

var imageBrush = new ImageBrush(); 
imageBrush.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/image.png")); 
+0

答えの説明を追加してください – Mostafiz

関連する問題