2012-11-23 19 views
8

:C# kodu ImageBrush Oluşturma XAML olarak

<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 çalışıyor, ancak C# kodu yukarıdaki ImageBrush nasıl oluşturulacağını:

:

C# böyle olmalı sorunu tahmin ediyorum

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

Ne istisna ? – Rafael

+1

Kodunuz benim için bilinen bir url ile çalışıyor, .jpgg yerine .jpgg yazdığınızdan emin misiniz? –

cevap

13

görüntü bulma ile ve UriKind parametreyi vermeyin çünkü alıyoruz istisna olduğudur. Uri bir parametre olarak UriKind.Relative vererek deneyin:

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

c In # kullanmadan gibi ilk şey kullanmış olarak C# aynı kodu kullanın sonra XAML gelen dolguyu kaldırmak olduğunu. Çalışmalı.

ImageBrush ib = new ImageBrush(); 

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

Bu kod ImageBrush UWP projenin parçası "Varlıklar/resim.png" imajını kullanarak oluşturur. Göreli yollar ImageBrush'un UWP sürümünde kullanılamaz.

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

lütfen cevabınızın bazı açıklamalarını ekleyin – Mostafiz