【发布时间】:2021-04-18 18:18:24
【问题描述】:
对于 Uno 平台,我想使用 XAML 从资产加载图像 (PNG)。此外,我想为所有目标平台使用单个图像,并将其缩放到其容器的大小。
这可能吗?
我已使用以下语法成功为 UWP 和 Wasm 执行此操作:
<Image Source="Assets/icons/arrow_back_white.png" />
但是,对于 Android,不显示图像,我只看到我的背景颜色。
我意识到正确的方法是为每个目标平台提供单独的图像,并且可以选择为每个平台中的每个分辨率提供单独的图像。这是一个不错的理想,但我正在努力避免这种巨大的开发开销,至少目前是这样。
谢谢。
编辑:
首先,为了更加清楚,我确实为我的图片选择了Content。
我在使用AppBarButton 时遇到了更严重的失败,例如:
<CommandBar>
<AppBarButton Icon="arrow_back_white.png" Label="Back" Click="OnBackClicked" />
<AppBarButton Icon="arrow_back_white.png" Label="Page" Click="OnPageClicked" />
<AppBarButton Icon="more_menu_white.png" Label="More" Click="OnMoreMenuClicked"/>
</CommandBar>
在应用初始化期间,UWP 失败并出现错误:
Failed to create a 'Windows.UI.Xaml.Controls.IconElement' from the text 'arrow_back_white.png'.
它也因 Wasm 和 Android 的构建错误而失败。
我把图标文件直接放在Assets目录下还是嵌套目录下都没关系。
引用图标和图像的正确语法和配置是什么?
编辑 2:
仍然不适用于 Android,但适用于 UWP 和 Wasl。我将我的图像移到 Assets 目录中并拥有这个 XAML:
<Button
Width="25" Height="25"
Padding="5"
Click="OnBackClicked" >
<Image Source="ms-appx:///Assets/arrow_back_white.png" Height="100" Width="100" />
</Button>
<Button
Width="25" Height="25"
Padding="5"
Click="OnPageClicked" >
<Image Source="ms-appx:///Assets/crop_din_white.png" />
</Button>
<Button
Width="25" Height="25"
Padding="5"
Click="OnMoreMenuClicked" >
<Image Source="ms-appx:///Assets/more_menu_white.png" />
</Button>
所有三个按钮都显示为大约 1 厘米高和宽的空白灰色。
编辑 3
尝试使用新创建的默认应用程序,该应用程序有效。我对代码所做的唯一更改是通过删除网格并添加到 MainPage.xaml:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" >
<Button
Width="25" Height="25"
Padding="5" >
<Image Source="ms-appx:///Assets/arrow_back_white.png" Height="100" Width="100" />
</Button>
<Button
Width="25" Height="25"
Padding="5" >
<Image Source="ms-appx:///Assets/crop_din_white.png" />
</Button>
<Button
Width="25" Height="25"
Padding="5" >
<Image Source="ms-appx:///Assets/more_menu_white.png" />
</Button>
</StackPanel>
所以,现在,找到显着差异的艰巨任务。
【问题讨论】:
标签: image icons uno-platform