2010-04-27 5 views
0

혼합 채우기 이유 :실버 - 직사각형에 바인딩 ImageSource이가 무효 마크 업하고 그 날을 말하지 않은 4 내게 말하고있다

<ImageBrush Stretch="Fill" ImageSource="{Binding Avatar, Mode=OneWay}"/> 

내가 ImageSource에 저장, 트위터 피드에서 데이터를 끌어하고있어 이것을 ImageBrush에 바인딩하여 (아래 참조) Rectangle 용 채우기로 사용합니다. 여기에 더 많은 컨텍스트가 있습니다 :

<Rectangle x:Name="Avatar" RadiusY="9" RadiusX="9" Width="45" Height="45" VerticalAlignment="Center" HorizontalAlignment="Center" > 
    <Rectangle.Fill> 
     <ImageBrush Stretch="Fill" ImageSource="{Binding Avatar, Mode=OneWay}"/> 
    </Rectangle.Fill> 
</Rectangle> 

Silverlight 응용 프로그램 내에서 사용되는 Silverlight UserControl 내부에서 사용하고 있습니다. 문제가 될 수있는 아이디어는 무엇입니까?

+0

은이 방법에 의해 DataTemplate을보십시오. –

+0

아바타 속성 또는 적어도 서명을 표시 할 수 있습니까? –

답변

0

바인딩은 ImageBrush의 ImageSource에 적용 할 수 없거나 그렇게 보이지 않습니다. 비슷한 문제가있어 대안을 찾고 있습니다.

0

ImageBrush의 ImageSource에 바인딩 할 수는 없지만 Shape의 Fill 속성에 바인딩 할 수는 있습니다. 그래서 다음 작품 :

<Rectangle Name="myRect" Fill="{Binding Avatar}"/> 

클래스 같은 것을 사용하여 다음 뒤에이 같은

public class AvatarClass 
{ 
    public ImageBrush Avatar { get; set; } 
} 

코드 : 여기

myRect.DataContext = new AvatarClass{ 
         Avatar = new ImageBrush { 
         ImageSource = new BitmapImage(avatarUri)}}; 
0

당신이 이동 : WPF/실버

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:convertor="clr-namespace:WpfApplication1.Converters" 
     Title="MainWindow" Height="350" Width="525"> 

    <Window.Resources> 
     <convertor:RectangleImageFillConvertor x:Key="RectangleImageFillConvertor" /> 
    </Window.Resources> 

    <Grid> 
     <Rectangle HorizontalAlignment="Center" 
        RadiusX="10" 
        RadiusY="10" 
        Width="200" 
        Height="200" 
        Fill="{Binding ImageUrl, Converter={StaticResource RectangleImageFillConvertor}}"/> 
    </Grid> 
</Window> 

인용구

namespace WpfApplication1 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 

     public string ImageUrl { get; set; } 

     public MainWindow() 
     { 
      InitializeComponent(); 
      this.DataContext = this; 
      ImageUrl = "http://www.deargrumpycat.com/wp-content/uploads/2013/02/Grumpy-Cat1.jpg"; 
     } 
    } 
} 

인용구 인용구

namespace WpfApplication1.Converters 
{ 
    public class RectangleImageFillConvertor : IValueConverter 
    { 

     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      try 
      { 
       return new ImageBrush(new BitmapImage(new Uri(value as string, UriKind.RelativeOrAbsolute))); 
       //if silverlight 
       // return new ImageBrush{ ImageSource = new BitmapImage(new Uri(value as string, UriKind.RelativeOrAbsolute))}; 
      } 
      catch 
      { 
       return null; 
      } 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
} 

enter image description here