在UWP中对齐CommandBar的内容

剑道

如何在CommandBar水平右边的内容部分中对齐内容在周年更新之前,这仍然是可能的。

马丁·齐克蒙德

禁用该IsDynamicOverflowEnabled属性并将设置HorizontalContentAlignmentRight完成此操作后,您将获得与周年庆更新SDK版本相同的行为。

    <CommandBar HorizontalContentAlignment="Right"
                IsDynamicOverflowEnabled="False">
        <CommandBar.Content>
            <TextBlock Text="Content" />
        </CommandBar.Content>
    </CommandBar>

CommandBar中居中的内容

问题原因

使用周年更新SDK(Windows 10版本1607),向CommandBar控件-添加了新属性IsDynamicOverflowEnabled此属性true默认设置为,其目的是自动将应用栏命令从工具栏上的主要区域溢出到次要区域。

但是,此添加要求更改控件的默认模板。如果您查看中的默认CommandBar模板C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.14393.0\Generic\generic.xaml,则会看到该模板包含一个新的VisualStateGroup

<VisualStateGroup x:Name="DynamicOverflowStates">
<VisualState x:Name="DynamicOverflowDisabled"/>
<VisualState x:Name="DynamicOverflowEnabled">
    <VisualState.Setters>
        <Setter Target="ContentControlColumnDefinition.Width" Value="Auto"/>
        <Setter Target="PrimaryItemsControlColumnDefinition.Width" Value="*"/>
    </VisualState.Setters>
</VisualState>

默认情况下,控件将ContentControlColumnDefinition.Width设置为,*并将其PrimaryItemsControlColumnDefinition.Width设置为Auto,这意味着内容将填充输入主命令后剩下的所有可用空间。但是,此行为对于动态溢出没有意义,因为这要求命令在溢出之前占用尽可能多的空间。因此,可以VisualState DynamicOverflowEnabled适当地切换列宽。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章