我最近自学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();