属性"图像预览在类型"图像文件信息"上找不到



我最近自学Visual Studio和C#, 所以我遵循了这个例子

https://learn.microsoft.com/en-us/windows/uwp/design/basics/xaml-basics-adaptive-layout

并在标题上出现错误

这是源代码(我认为它与链接中的完全相同(

<Page x:Name="page"
x:Class="PhotoLab.MainPage"
<!-- skip -->
<Page.Resources>
<DataTemplate x:Key="ImageGridView_DefaultItemTemplate">
<!-- skip -->
</DataTemplate>
<DataTemplate x:Key="ImageGridView_MobileItemTemplate"
x:DataType="local:ImageFileInfo">
<!-- skip -->
<Image x:Name="ItemImage"
Source="{x:Bind ImagePreview}"
Stretch="UniformToFill">
<!-- skip -->
</DataTemplate>
<!-- skip -->
</Page.Resources>
<RelativePanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<!-- skip -->
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Key="LargeWindow">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource LargeWindowSnapPoint}"/>
<!-- skip -->
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</RelativePanel>
</Page>

p.s 还有一件事,为什么我不能在 VisualState>> 上使用 x:Key<<? 它也犯了错误

我只是在Github上观看示例。ImageFileInfo类中没有"图像预览"属性。

我认为此属性是文件图像源上的一个getter。 因此,此属性应与方法的结果类型相同:

public async Task<BitmapImage> GetImageSourceAsync()

所以我建议你:

  • 要添加"传统"属性,ImagePreview如下所示:

    private BitmapImage _imagePreview;
    // ...
    public BitmapImage ImagePreview
    {
    get => _imagePreview;
    private set => SetProperty(ref _imagePreview, value);
    }
    
  • 然后,您必须实现一个异步方法,以将此图像加载ImagePreview属性中。此方法存在,它是 GetImageSourceAsync((。因此,在代码中想要的某个地方,调用以下内容:

    fileImage.ImagePreview = await fileImage.GetImageSourceAsync();
    

最新更新