资源图像未显示WPF

时间:2019-11-27 14:09:26

标签: wpf xaml

我有3张.png图片,我想将它们添加到网格中(简单地说) 正确显示了我的2张照片,但没有显示画面,我也不知道为什么:

这是我对所有3张图片的app.xaml行:

    <BitmapImage x:Key="EditIcon" UriSource="Ressources\EdtIcon.png"/>
    <BitmapImage x:Key="DeleteIcon" UriSource="Ressources\DltIcon.png"/>
    <BitmapImage x:Key="InterroIcon" UriSource="Ressources\InterroIcon.png"/>

这是我将其中3个放入网格的方式:

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Ellipse Width="20" Height="20" VerticalAlignment="top"  Margin="0,0,0,0" HorizontalAlignment="Center" MouseLeftButtonUp="ButtonComparerCorrection_Click">
                <Ellipse.Fill>
                    <ImageBrush ImageSource="{Binding InterroIcon}"/>
                </Ellipse.Fill>
            </Ellipse>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Ellipse Width="20" Height="20" VerticalAlignment="Top" Margin="0,0,0,0" HorizontalAlignment="Stretch" MouseLeftButtonUp="ButtonDeleteRow_Click">
                <Ellipse.Fill>
                    <ImageBrush ImageSource="{Binding DeleteIcon}"/>
                </Ellipse.Fill>
            </Ellipse>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Ellipse Width="20" Height="20" VerticalAlignment="top"  Margin="1,0,0,1" HorizontalAlignment="Stretch" MouseLeftButtonUp="ButtonEditRow_Click">
                <Ellipse.Fill>
                    <ImageBrush ImageSource="{Binding EditIcon}"/>
                </Ellipse.Fill>
            </Ellipse>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

唯一没有出现的图像是第一个:InterroIcon 我检查了png文件的名称,它也是InterroIcon

在上网检查后,我确认并且生成操作为“资源”,并且副本设置为“如果较新”,通常可以解决问题,但对于我而言不是这样

此问题可能是什么原因?

感谢您抽出宝贵的时间

1 个答案:

答案 0 :(得分:0)

如果DataContext中具有{Binding InterroIcon}类型兼容的InterroIcon属性,则

ImageSource将起作用。

由于已声明图像资源,因此使用它们更为有意义(无绑定错误,并且图像资源不属于MVVM体系结构中的DataContext):

<ImageBrush ImageSource="{StaticResource InterroIcon}"/>

<ImageBrush ImageSource="{StaticResource DeleteIcon}"/>

<ImageBrush ImageSource="{StaticResource EditIcon}"/>