2012-11-23 6 views
8

XAML में:कैसे सी # कोड में ImageBrush बनाने के लिए

<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 ठीक काम करता है, लेकिन सी # कोड में ऊपर ImageBrush बनाने का तरीका:

:

सी # इस तरह होना चाहिए

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

आपका कोड मेरे लिए एक ज्ञात यूआरएल के साथ काम करता है, क्या आप सुनिश्चित हैं कि .jpg –

उत्तर

13

मुझे लगता है कि समस्या का पता लगाने के साथ छवि का पता लगाने और यह अपवाद है क्योंकि आप UriKind पैरामीटर प्रदान नहीं करते हैं। Uri को पैरामीटर के रूप UriKind.Relative देने का प्रयास करें:

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

सी # में आप उपयोग कर सकते हैं की तरह है, पहली बात तो XAML से भरने को हटाने के रूप में आप इसे इस्तेमाल किया है ग # में एक ही कोड का उपयोग करें। यह काम करना चाहिए।

ImageBrush ib = new ImageBrush(); 

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

यह कोड छवि "संपत्ति/छवि.png" का उपयोग करके छविब्रश बनाता है जो यूडब्ल्यूपी परियोजना का हिस्सा है। छवि ब्रश के यूडब्ल्यूपी संस्करण में सापेक्ष पथ अनुपलब्ध हैं।

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

के बजाय .jpeg का मतलब है कृपया अपने उत्तर का कुछ स्पष्टीकरण जोड़ें – Mostafiz

संबंधित मुद्दे