5

データに応じて動的に変更される ImageBrush 内に ImageSource があります。

問題は、DataTemplate 内にあるため、ImageBrush の Name に直接アクセスできないことです。UI 内にデータを格納することは非常に悪い習慣であるため、これが悪い考えであることはわかっています。

画像のデータバインディングを使用してこれを解決する方法を知っている人がいれば、本当に感謝しています。ありがとう!!

<DataTemplate>
  <StackPanel Width="250" Height="180" VerticalAlignment="Bottom">
    <StackPanel.Background>
       <ImageBrush ImageSource="{Binding ???}"/>
    </StackPanel.Background>
    ........
  </StackPanel>
</DataTemplate>
4

4 に答える 4

2

パスを画像に変換するコンバーターを作成できます。

public sealed class ImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        try
        {
            return new BitmapImage(new Uri((string)value));
        }
        catch 
        {
            return new BitmapImage();
        }
    }

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

次に、XAML で:

< Image Source="{Binding Path=ImagePath, Converter={StaticResource ImageConverter}}" />
于 2012-12-04T04:23:23.460 に答える
0

代わりにこれを試してください:

<Image> 
    <Image.Source> 
        <BitmapImage UriSource=”{Binding ImagePath}” /> 
   </Image.Source> 
</Image> 
于 2012-12-04T05:11:12.970 に答える
0

プロパティを使用して、コントロールをプロパティにバインドしてみませんか!!! 画像のパスをプロパティに設定してから、要素をプロパティにバインドできます

于 2012-12-04T07:27:58.570 に答える
0

BaseUriで指定する必要がありますnew Uri(BaseUri, Url)

public sealed class ImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        try
        {
            return new BitmapImage(new Uri(BaseUri, (string)value));
        }
        catch 
        {
            return new BitmapImage();
        }
    }

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

また、XAML コードでコンバーターを指定します。

<Page:Resources>
     <local:ImageConverter x:Key="imageConverter"/>
</Page:Resources>

そしてあなたのコンバーターImage

<Image Source="{Binding Path=ImagePath, Converter={StaticResource imageConverter}}" />
于 2012-12-04T07:33:21.063 に答える