gpt4 book ai didi

xaml - 图像不会显示在 Xamarin Forms 的

转载 作者:行者123 更新时间:2023-12-04 09:43:45 25 4
gpt4 key购买 nike

我正在尝试将 png 图像加载到 Xamarin Forms 中的图像控件中。我已将图像添加到 drawable 和 drawable-hdpi 文件夹中,设置 BuildAction = AndroidResource 和自定义工具 = MSBuild:UpdateGeneratedFiles。我尝试使用的 png 图像之一,monkeyface.png,从示例项目中复制,加载得很好。另一个 png 图像根本不会显示。以下是相关详情:

代码

            <Grid HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Image Source="monkeyface.png" Aspect="AspectFill" HorizontalOptions="CenterAndExpand" VerticalOptions="Start"/>
<Image Source="homepage.png" Aspect="AspectFill" HorizontalOptions="Fill" VerticalOptions="End"/>
<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="Center">
<Button Text="Click" TextColor="Black" HorizontalOptions="FillAndExpand"/>
</StackLayout>
</Grid>

输出

enter image description here

图像 1 的图像信息

enter image description here

图像 2 的图像信息

enter image description here

我快疯了,试图弄清楚这一点。任何帮助将不胜感激!

更新
我也尝试过,但没有成功,下面的代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="NGIC_XAML.Views.Login.Login">
<ContentPage.Content>
<StackLayout>
<Image Source="homepage.png" Aspect="AspectFit"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>

但这有效:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="NGIC_XAML.Views.Login.Login">
<ContentPage.Content>
<StackLayout>
<Image Source="monkeyface.png" Aspect="AspectFit"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>

更新 2
    <AndroidResource Include="Resources\drawable\homepage.png">
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
</AndroidResource>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\homepage.png">
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
</AndroidResource>
</ItemGroup>

如果有人指出无法加载的图像指定了生成器,我也删除了它,但它仍然不会加载。
  <ItemGroup>
<AndroidResource Include="Resources\drawable\monkeyface.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\monkeyface.png" />
</ItemGroup>

有问题的 png 文件

enter image description here

图像在 Android Resources 文件夹中的位置

enter image description here

删除 bin 和 obj 文件夹并重建后,出现以下错误:

System.NullReferenceException:未将对象引用设置为对象的实例。
在 Xamarin.AndroidDesigner.DesignerProject.set_PreferredTheme(Theme value) 在 E:\A_work\711\s\Xamarin.Designer.Android\Xamarin.AndroidDesigner\DesignerProject.cs:line 901
在 Xamarin.AndroidDesigner.AndroidDesignerSession.SetTheme(Theme theme, Boolean triggerChange) 在 E:\A_work\711\s\Xamarin.Designer.Android\Xamarin.AndroidDesigner\AndroidDesignerSession.cs:line 376
在 Xamarin.Designer.Forms.Preview.AndroidXamlRenderer.GetRenderSessionForFormFactor(XamlRenderContext context, XamlFormFactor formFactor) 在 E:\A_work\711\s\Xamarin.Designer.Forms\Xamarin.Designer.Forms.Preview\Android\AndroidXamlRenderer.cs:line 236
在 Xamarin.Designer.Forms.Preview.AndroidXamlRenderer.d__25.MoveNext() 在 E:\A_work\711\s\Xamarin.Designer.Forms\Xamarin.Designer.Forms.Preview\Android\AndroidXamlRenderer.cs:line 136
--- 从上一个抛出异常的位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
在 Xamarin.Designer.Forms.Preview.AndroidXamlRenderer.d__27.MoveNext() 在 E:\A_work\711\s\Xamarin.Designer.Forms\Xamarin.Designer.Forms.Preview\Android\AndroidXamlRenderer.cs:line 307
--- 从上一个抛出异常的位置开始的堆栈跟踪结束 ---
在 Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

最佳答案

您需要设置Grid行数和列数,
然后在每个子项中指定它应该在哪一行和哪一列。由于此示例只有一列,因此不需要在 XAML 中将其指定为良好的代码实践。

<Grid HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">

<Grid.RowDefinitions>
<RowDefinition Height="49*" />
<RowDefinition Height="49*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Image Source="monkeyface.png" Aspect="AspectFill" HorizontalOptions="CenterAndExpand" />
<Image Grid.Row="1" Source="homepage.png" Aspect="AspectFill" HorizontalOptions="Fill" />
<Button Grid.Row="2" Text="Click" TextColor="Black" HorizontalOptions="FillAndExpand"/>

</Grid>

关于xaml - 图像不会显示在 Xamarin Forms 的 <Image> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62212053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com