【问题标题】:VisualStateManager with Windows Phone 8.1 BottomAppBar带有 Windows Phone 8.1 BottomAppBar 的 VisualStateManager
【发布时间】:2015-11-11 01:16:23
【问题描述】:

我在 Windows 8.1 应用程序中使用 VisualStateManager 来更新 BottomAppBar 上按钮的可见性...

但是,Windows Phone 8.1 上的 BottomAppBar 似乎不支持相同的 XAML。

当我尝试更新 Blend 中的按钮时,出现错误:动画正在尝试修改名为 '' 的对象,但在 PageStandIn 中找不到此类对象。

有没有办法让这个工作,或者我必须使用代码隐藏来手动切换可见性? 有什么办法可以让我从win81共享代码来更新命令栏?

【问题讨论】:

    标签: windows-phone-8.1 winrt-xaml visualstatemanager appbar commandbar


    【解决方案1】:

    AppBars 非常特别,它们是系统 UI 的一部分(在某种意义上),因此某些东西往往无法按预期工作。

    使用故事板无法更新它们。 您可以使用后面的代码,但如果您使用的是 MVVM 框架,您应该能够将 Bind 转换为布尔值并使用 BooleanToVisibilityConverter 进行可见性管理。

    型号

    public bool ShowAppButton {get; set;}
    

    查看

    <AppBarButton x:Name="MyAppButton" Label="AppButton" Visibility="{Binding ShowAppButton, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}">
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢,我记得 wp7 中的这个问题,但我认为他们在 8.1 中更新了这个问题,不使用 shell,所以你可以做这样的事情,猜我错了!我想要故事板,因为我基于交互而不是我可以绑定的值来显示/隐藏......但至少我确定,谢谢!
    • 他们至少修复了一些问题,我不知道这在哪些 MVVM 框架上被破坏,但你不能在 WP8 中的 Caliburn 中进行绑定,但现在你可以在 WP8.1 中进行绑定。所以到达那里:D
    • 我记得不能绑定所以是的,你说得对,它变得更好了!事实上,我刚刚在 win10 移动版中对此进行了测试,它确实适用于视觉状态,所以也有 :) 再次感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多