我最近自学了Visual Studio和C#, 所以我按照这个例子
https://docs.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还有一件事,为什么我不能使用x:Key on&lt;&lt; VisualState&gt;&gt;? 它也犯了错误
答案 0 :(得分:0)
我只是在Github上观看样本。 ImageFileInfo
类中没有“ImagePreview”属性。
我认为此属性是文件图像源上的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();