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