【问题标题】:Xamarin.Forms ToolBarItems issue with image and text图像和文本的 Xamarin.Forms ToolBarItems 问题
【发布时间】:2018-11-10 00:47:18
【问题描述】:

我在 xamarin 表单中创建了一个跨平台应用程序。在此我使用的是内容页面。在内容页面导航栏中,我使用 ToolBarItems 添加了按钮。它在 Android 和 iOS 上显示良好,但对于 UWP 来说它即将到来用省略号。当我单击省略号时,只有按钮文本可见。在单击之前,导航栏中似乎没有按钮。 这是单击省略号之前导航栏的屏幕截图。

这是点击省略号后导航栏的截图。

有没有什么方法可以自动打开省略号,而无需为 UWP 点击它。 请帮忙。

【问题讨论】:

  • 您是否在工具栏项上设置了Priority
  • 不,我没有设置优先级。
  • 我删除了我以前的答案。所以基本上这是你得到的正常行为,例如在 Windows 10 上打开天气应用程序,你会看到与工具栏项目相同的行为。
  • 有没有办法在页面加载时自动打开省略号。我可以隐藏省略号。

标签: c# xaml xamarin.forms visual-studio-2017


【解决方案1】:

在 ToolbarItem 中添加 Order="Primary"

有关详细信息,请参阅Xamarin Forms Toolbar 中的 UWB 部分

<ContentPage.ToolbarItems> <ToolbarItem Order="Primary" Text="Sync" Icon="ic_sch_sync.png" Clicked="sync_clicked" x:Name="SyncItem" > </ToolbarItem> </ContentPage.ToolbarItems>

还有一个要求 我也有同样的问题 但我发现如果没有设置页面标题,则不会显示导航栏。 所以请在内容页面构造函数中设置标题。

【讨论】:

  • 这是我用来在导航页面工具栏中添加按钮的 xaml 代码
  • 嗨@Harsh Chaurasia,您的帖子不是答案而是评论,所以请确保像这样的cmets需要进入评论部分而不是作为答案。
  • 我还没有写cmets的权限。
  • 更新答案请查收。
  • 感谢@HarshChaurasia 的回复。但添加 Order="Primary" 后问题仍未解决,我正在内容页面构造函数中设置标题。
【解决方案2】:

默认情况下,UWP 中的CommandBar 具有这种自然行为,因此您需要覆盖CommandBarIsOpen 属性以默认显示文本。

因此,您可以为其创建自定义渲染器并将其 IsOpen 属性设置为 true。

方法一:

documentation 确定,我发现NavigationPageContentPage 都是UWP 上的自定义框架元素。因此,您可以调试以查看自定义框架如何合并CommandBar 并设置其IsOpen 属性。

方法二:

或者,如果您正在寻找简单的东西,您可以通过在 UWP 中的 App.xaml 中添加 this 样式资源来更改 UWP 应用中所有 CommandBar 样式的默认行为。我已经对 this 样式进行了更改,并将 IsOpen 属性设置为 true。

【讨论】:

  • 感谢@AbsoluteSith 的回复。您能给我一个示例,说明我应该如何为 UWP 创建自定义渲染器。
猜你喜欢
  • 1970-01-01
  • 2016-12-06
  • 2018-08-20
  • 2011-06-25
  • 1970-01-01
  • 2016-05-22
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多