Xaml UWP应用程序中的命令栏溢出-是否可以滚动? 背景

Xaml UWP应用程序中的命令栏溢出-是否可以滚动? 背景,xaml,scroll,uwp,overflow,commandbar,Xaml,Scroll,Uwp,Overflow,Commandbar,我正在开发一个UWP应用程序,它是为手机、桌面等设计的 我在某些页面上使用命令栏有点困难,特别是在手机上(但这也可能适用于较小的桌面窗口) 问题 当我需要在命令栏上设置许多AppBarButton时,它有时会溢出,我无法查看/访问隐藏的按钮 这里是一个示例屏幕截图,您可以看到“文档”标签正在被删除。还有另一个按钮(无法看到/访问),我想你会说它在…按钮下面: XAML 为简洁而缩短(此处无特殊/与众不同) 我需要什么 我仍然需要用户可以访问另一个AppBarButtons 每个Com

我正在开发一个UWP应用程序,它是为手机、桌面等设计的

我在某些页面上使用
命令栏有点困难,特别是在手机上(但这也可能适用于较小的桌面窗口)


问题 当我需要在
命令栏
上设置许多
AppBarButton
时,它有时会溢出,我无法查看/访问隐藏的按钮

这里是一个示例屏幕截图,您可以看到“文档”标签正在被删除。还有另一个按钮(无法看到/访问),我想你会说它在
按钮下面:


XAML 为简洁而缩短(此处无特殊/与众不同)



我需要什么 我仍然需要用户可以访问另一个
AppBarButton
s

每个
CommandBar
上的按钮数量可能会有所不同-有时它们很适合,有些按钮隐藏了1个(如示例所示),有些按钮隐藏了2个或3个

我在想(当然,不知何故)有可能以某种方式允许水平滚动以访问其他按钮


我试过的 我已经求助于将一些非必要的命令移动到
命令栏。SecondaryCommands
,以释放一些空间;正如上面的截图/XAML所示,主要问题仍然很明显

没有
ScrollViewer
附加属性,尝试将
AppBarButton
s嵌套在其中自然会引发编译器错误:

无效类型:预期类型为
IObservableVector
ICommandBarElement
,实际类型为
ScrollViewer

我已经在网上搜索了很多答案,看看是否有可能,但似乎没有太多关于我如何解决这个问题的文献(或类似的答案)



非常感谢您的建议。提前谢谢。

对于我来说,这不是很好的用户体验行为,但是你可以为
命令栏
覆盖
样式
,并将主
项控件
包装到
滚动查看器

找到默认样式并找到主项控件
,然后替换为:

<ScrollViewer VerticalScrollMode="Disabled"
                VerticalScrollBarVisibility="Disabled"
                HorizontalScrollMode="Enabled"
                HorizontalScrollBarVisibility="Visible">
    <ItemsControl x:Name="PrimaryItemsControl"
                    HorizontalAlignment="Right"
                    MinHeight="{ThemeResource AppBarThemeMinHeight}"
                    IsTabStop="False"
                    Grid.Column="1">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</ScrollViewer>

另外

谢谢你的回答,@Andrii-我会看看是否可以尝试一下。当你说“…不太好的用户体验行为…”时,你是什么意思?可滚动的
命令栏
的总体构思;或者你发布的解决方案?@GeoffJames用于scrollable
CommandBar
,而不是我的解决方案:)安德烈——不用担心。我不是怀疑这个解决方案,只是想澄清一下你的意思。我会告诉你我的进展:)谢谢again@GeoffJames我更新了一个aswer,在PasteBin上发布了完整的xaml,我很想知道为什么在将近4年后,这会得到一个带有建设性评论的否决票?这个问题不太好怎么办?--我欢迎任何关于如何改进的建议
<ScrollViewer VerticalScrollMode="Disabled"
                VerticalScrollBarVisibility="Disabled"
                HorizontalScrollMode="Enabled"
                HorizontalScrollBarVisibility="Visible">
    <ItemsControl x:Name="PrimaryItemsControl"
                    HorizontalAlignment="Right"
                    MinHeight="{ThemeResource AppBarThemeMinHeight}"
                    IsTabStop="False"
                    Grid.Column="1">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</ScrollViewer>
<CommandBar Style="{StaticResource ScrollablePrimaryComamndCommandBar}">