c# - 无法使用 UWP 在工具栏项目中显示按钮图标

标签 c# xaml xamarin.forms uwp

我正在为 UWP 和 Android 平台开发应用程序。我想为导航工具栏中的按钮设置一个图标。这是我在 XAML 中的代码:

<ContentPage.ToolbarItems>
    <ToolbarItem x:Name="btnAbout" Text="ABOUT" Order="Primary" Clicked="OnNextPageButtonClicked"/>
</ContentPage.ToolbarItems>

这是关联的 .cs 文件中的代码:

protected override void OnAppearing() 
{ 
    base.OnAppearing();
    btnAbout.IconImageSource = ImageSource.FromResource("Monk.about.ico"); 
}

在 Android 上一切正常,但在 UWP 中,即使我可以点击按钮,我也看不到图标。

我哪里出错了?

最佳答案

我找到了解决方案,我把它写给需要它的人:

有必要根据编译目标的操作系统类型定义图标的路径。

对于 Android,我必须将图像复制到所有“drawable ...”文件夹并将其编译属性设置为“AndroidResource”。

对于 UWP,我必须将 png 文件复制到 Assets 文件夹,然后将其编译属性设置为“Content”。

最后,您必须根据编译类型在 XAML 文件中指明要使用的路径。代码如下:

<ContentPage.ToolbarItems>
        <ToolbarItem Text="ABOUT" Clicked="OnNextPageButtonClicked" Priority="0">
            <ToolbarItem.IconImageSource>
                <OnPlatform x:TypeArguments="FileImageSource">
                    <On Platform="Android">info</On>
                    <On Platform="UWP">Assets/info.png</On>
                </OnPlatform>
            </ToolbarItem.IconImageSource>
        </ToolbarItem> 
</ContentPage.ToolbarItems>

关于c# - 无法使用 UWP 在工具栏项目中显示按钮图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57699552/

相关文章:

c# - 使用 Linq to SQL 在本地和远程之间切换 `ConnectionStrings`

c# - RaisePropertyChanged() 没有更新单个按钮的值

xamarin - 无法更改导航栏背景颜色 Xamarin 表单

c# - Itemscontrol 的行为就像一个向导

c# - ListView 的备用行颜色 - uwp

wpf - 将 Xaml 单选按钮绑定(bind)到 bool 值

XAML 网格可见性转换?

xamarin - Xamarin跨平台中的全局异常处理

c# - 为什么我们需要在应用加载时使用 BeginInvokeOnMainThread 来显示 DisplayAlert

c# - 如何找到是否存在于任何多边形区域内的点?