AppBar WP8.1里面的自定义控件

Custom control inside AppBar WP8.1

WP8.1 中的appbar 不是很灵活,我们仅限于一些固定控件,如appbarbutton、appbarseparator...但是我想在AppBar 中添加一个stackpanel。 AppbarButton 和 AppBarSeparator 都在实现 "ICommandBarElement"。我想很简单,让我们创建一个自定义控件,继承自 StackPanel 并实现接口 "ICommandBarElement" 并完成。但实际上要做到这一点并不容易,也不可能。我尝试从 Button 继承并实现该接口,以制作 AppBarButton 的精确副本,但即使这样也行不通。

 using Windows.Foundation;
using Windows.UI.Xaml.Controls;

internal class AppbarRectangle : Button, ICommandBarElement
{
    public AppbarRectangle()
    {
        Loaded += AppbarRectangle_Loaded;
    }

    private void AppbarRectangle_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
    }

    protected override Size ArrangeOverride(Size finalSize)
    {
        return base.ArrangeOverride(finalSize);
    }

    protected override Size MeasureOverride(Size availableSize)
    {
        return base.MeasureOverride(availableSize);
    }

    protected override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
    }

    public bool IsCompact
    {
        get
        {
            return false;
        }
        set
        {
        }
    }
}

我不知道我必须做什么才能在 AppBar 中插入自定义控件,因为它真的很有限。有任何想法吗?

谢谢。

这不受 Microsoft 支持,因为他们希望标准控件具有通用外观。所以在应用栏中你只能添加这些基本项目。

您能想到的唯一解决方案是构建您自己的应用栏控件,但问题是这是否是您的客户想要的解决方案。因为他们习惯了标准的应用栏。

Windows Phone 上的 AppBar 显示为系统 UI,而不是应用本身的一部分。只能使用系统理解的项目(本质上是来自 AppBarButtons 的图标掩码和文本以及来自 CommandBar 的前景色和背景色)。这就是为什么您不能像在 Windows.

上那样在 phone 上使用任意控件或彩色图标的原因

如果您想要更加自定义的 AppBar,那么您必须自己实现它,而不是使用内置的 AppBar。只要您遵循系统 AppBar 的基本设计概念,它就不会让您的用户感到困惑。您可以看看照片应用程序和 IE 的作用,作为示例扩展设计。