【发布时间】:2016-05-19 07:44:48
【问题描述】:
在我的 UWP 应用程序中,我有一系列 AppBarButtons,由 AppBarSeparators 分隔。当窗口大小下降到一定数量以下时,我想隐藏AppBarSeparators 以节省空间。
我尝试了类似的方法,但没有成功:
<VisualState.Setters>
<Setter Target="AppBarSeparator" Value="Collapsed"/>
</VisualState.Setters>
我知道不可能给每个 AppBarSeparators 标签,所以我可以直接定位它们,因为它们是作为绑定的一部分动态生成的。
那么当我的窗口缩小到一定大小以下时,如何隐藏所有 AppBarSeparators?
编辑:这是我的 XAML 的精简版本,用于显示 AppBarSeparators 是如何生成的:
<Pivot x:Name="docPivot"
ItemsSource="{Binding}">
<Pivot.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal"
Grid.Row="0">
<AppBarButton/>
<AppBarSeparator/>
<AppBarButton/>
<AppBarButton/>
<AppBarSeparator/>
</StackPanel>
<StackPanel Orientation="Horizontal"
Grid.Row="1">
</StackPanel>
</Grid>
</DataTemplate>
</Pivot.ItemTemplate>
</Pivot>
【问题讨论】:
-
“它们是作为绑定的一部分动态生成的。”您的
AppBarSeparators是在后面的代码中生成的,您没有在 xaml 中设计它们? -
@GraceFeng-MSFT 不,它们在 xaml 中,作为 Pivot 绑定的一部分生成
-
能否请您显示一些 xaml 代码?
-
@GraceFeng-MSFT 用 XAML 更新了我的帖子
-
好的,我现在明白了,你的
AppBarSeparators在DataTemplate里面,它们没有暴露出来,里面的控件实际上变成了你的数据对象的可视化结构,所以这里使用visualstate trigger不能解决问题,但您可以在此处使用带有转换器的数据绑定。如果我在这里写一个演示作为答案,可以吗?
标签: responsive-design windows-runtime uwp