首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VisualStates在UWP FlipView中不工作

VisualStates在UWP FlipView中不工作
EN

Stack Overflow用户
提问于 2017-09-08 18:01:39
回答 1查看 121关注 0票数 1

在我的FlipView中,我在DataTemplate中设置了VisualState触发器,以显示/隐藏基于窗口宽度的网格。DataTemplate内部的触发器在FlipView之外运行良好,但当我将网格放置在FlipView DataTemplage中时,触发器就不会触发。我在ListView中使用了这种技术,没有问题,所以不确定这里有什么不同。

代码语言:javascript
复制
<FlipView>
    <FlipView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <VisualStateManager.VisualStateGroups>
                    <VisualStateGroup>
                        <VisualState>
                            <VisualState.StateTriggers>
                                <AdaptiveTrigger MinWindowWidth="0" />
                            </VisualState.StateTriggers>
                            <VisualState.Setters>
                                <Setter Target="View1.Visibility" Value="Collapsed" />
                                <Setter Target="View2.Visibility" Value="Visible" />
                            </VisualState.Setters>
                        </VisualState>
                        <VisualState>
                            <VisualState.StateTriggers>
                                <AdaptiveTrigger MinWindowWidth="700" />
                            </VisualState.StateTriggers>
                            <VisualState.Setters>
                                <Setter Target="View1.Visibility" Value="Visible" />
                                <Setter Target="View2.Visibility" Value="Collapsed" />
                            </VisualState.Setters>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateManager.VisualStateGroups>
                <Grid x:Name="View1"></Grid>
                <Grid x:Name="View2"></Grid>
            </Grid>
        </DataTemplate>
    </FlipView.ItemTemplate>
</FlipView>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-09 01:58:08

除非顶层容器是一个DataTemplate (请查看VisualStateManager.GoToState()中的第一个参数,它在引擎盖下被调用),否则视觉状态在VisualStateManager.GoToState()中不起作用。在你的例子中,它是一个Grid,所以它不能工作。

一个简单的解决方法是,将您的Grid UserControl**,或** ContentControl 中的封装到一个空的样式中(参见其他答案here)。

如果您已经在页面级别定义了这组可视状态,并且希望对页面中的某些DataTemplate应用相同的规则。看看这个answer,在这里,我使用Behavior来传递VisualStateGroup引用,而不是复制它们,以便将所有MinWindowWidth设置保存在一个地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46122212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档