使用XAML图像源的WPF

神经氨酸酶7

我试图用显示在Image.Source中的矢量图像XamlReader我有这样的XAML资源。

<Canvas Width="76" Height="76" ClipToBounds="True" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Path Fill="#FF000000" Height="76" Stretch="Fill" Width="76">
    <Path.Data>
        <PathGeometry FillRule="Nonzero" Figures="M21,30.0001L55.9999,30.0001 55.9999,50 21,50 21,30.0001z M52,28L37,28C38,25,39.4999,24.0001,39.4999,24.0001L50.75,24C51.3023,24,52,24.6977,52,25.25L52,28z" />
    </Path.Data>
</Path>

此处创建了绑定但是,当我尝试将其与以下项一起使用时,它不起作用:

<Image Stretch="Fill" Source="{Binding Converter={StaticResource uriToUIElementConverter},ConverterParameter=images/Folder.xaml}"/>

文件的属性Build Action=Resource转换器uriTOUIElementConverter是:

public class FileToUIElementConverter :IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        FileStream fileStream = new FileStream((string)parameter, FileMode.Open); 
        return XamlReader.Load(fileStream) as DrawingImage;
    }

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

当我尝试构建项目时,出现以下错误:

System.IO.FileNotFoundException

我这样编辑转换器:

Stream fileStream = Application.GetResourceStream(new Uri("pack://application:,,,/ASSEMBLYNAME;component/"+(string) parameter)).Stream;

但这不会再次起作用。我应该怎么做才能使其正常工作?

一月

Application.GetResourceStream所需提供的路径是相对于应用程序包的。

例:

我有XAML文件Images / Folder.xaml。Folder.xaml的生成操作是Resource

Folder.xaml

<DrawingImage xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <DrawingImage.Drawing>
        <GeometryDrawing Brush="LimeGreen">
            <GeometryDrawing.Geometry>

                <PathGeometry FillRule="Nonzero"
                              Figures="M21,30.0001L55.9999,30.0001 55.9999,50 21,50 21,30.0001z M52,28L37,28C38,25,39.4999,24.0001,39.4999,24.0001L50.75,24C51.3023,24,52,24.6977,52,25.25L52,28z" />

            </GeometryDrawing.Geometry>
        </GeometryDrawing>
    </DrawingImage.Drawing>
</DrawingImage>

转换器:

public class FileToUIElementConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string path = parameter.ToString();

        StreamResourceInfo sri = Application.GetResourceStream(new Uri(path, UriKind.Relative));
        if (sri != null)
        {
            using (Stream stream = sri.Stream)
            {
                var logo = XamlReader.Load(stream) as DrawingImage;

                if (logo != null)
                {
                    return logo;
                }
            }
        }

        throw new Exception("Resource not found");
    }

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

用法:

<Image x:Name="ImageLogo" Source="{Binding Converter={StaticResource FileToUiElementConverter}, ConverterParameter=images/folder.xaml}"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 app.xaml /wpf 设置图像源

来自分类Dev

如何使用 C# 将图像源链接正确绑定到 wpf xaml

来自分类Dev

WPF 无法找到使用参考绑定的源 - xaml

来自分类Dev

我可以在 WPF 中使用 ViewBox 作为图像的源吗?

来自分类Dev

使用WPF和XAML创建图像的滚动网格

来自分类Dev

WPF C#图像源

来自分类Dev

WPF图像源不会更新图像

来自分类Dev

WPF图像源取决于对象属性

来自分类Dev

wpf按钮更改图像源

来自分类Dev

如何在WPF中保存图像源?

来自分类Dev

WPF图像未加载,源问题

来自分类Dev

在WPF中处理无效的图像源

来自分类Dev

WPF - 具有多重绑定的图像源

来自分类Dev

使用WPF中的Non-UI线程从Memory Stream设置图像控件的源

来自分类Dev

C#WPF使用具有Button.Tag的多图像源ControlTemplate

来自分类Dev

WPF使用计时器动态更改图像源

来自分类Dev

XAML,WPF图像位置和裁剪问题

来自分类Dev

WPF XAML-图像的玻璃效果

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

使用 $(this).find("") 从图像元素获取图像源;

来自分类Dev

WPF-动画图像源更改

来自分类Dev

在WPF表单中单击按钮更改背景图像源

来自分类Dev

具有IValueConverter的图像源的WPF依赖属性

来自分类Dev

在WPF中绑定源时图像未显示

来自分类Dev

在视图模型Wpf中设置图像控制源

来自分类Dev

获取源图像并在 Image WPF 中显示

来自分类Dev

在WPF中使用XAML和ironpython,图像显示在设计器窗口中,但当我运行程序时不显示

来自分类Dev

在XAML中为不同控件设置ControlTemplate内部图像的图像源