c# – 如何在嵌套元素上设置可视状态?

c# – 如何在嵌套元素上设置可视状态?,第1张

概述我正在尝试使用VisualStateManager为属性设置一个值.问题是我需要在嵌套元素(称为variableSizedWrapGrid)上设置此值,但它不响应相应的状态.这个想法是当用户更改平板电脑的方向(LANDSCAPE到PORTRAIT)时,应该更改此元素的方向. <GroupStyle.Panel> <ItemsPanelTemplate> <VariableS 我正在尝试使用visualstatemanager为属性设置一个值.问题是我需要在嵌套元素(称为variableSizeDWrapGrID)上设置此值,但它不响应相应的状态.这个想法是当用户更改平板电脑的方向(LANDSCAPE到PORTRAIT)时,应该更改此元素的方向.

<GroupStyle.Panel>    <ItemsPanelTemplate>        <VariableSizeDWrapGrID x:name="variableSizeDWrapGrID" OrIEntation="Vertical" Background="Blue" WIDth="660" ItemHeight="120" ItemWIDth="220" margin="0,80,0">            <visualstatemanager.VisualStateGroups>                <VisualStateGroup>                    <VisualState x:name="FullScreenPortrait">                        <Storyboard>                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.OrIEntation)">                                <discreteObjectKeyFrame KeyTime="0" Value="Horizontal" />                            </ObjectAnimationUsingKeyFrames>                        </Storyboard>                    </VisualState>                </VisualStateGroup>            </visualstatemanager.VisualStateGroups>        </VariableSizeDWrapGrID>    </ItemsPanelTemplate></GroupStyle.Panel>

我正在为windows 8开发windows Metro应用程序.

解决方法 我相信这是LayoutAwarePage的用途.如果您将LayoutAwarePage作为基类,并且希望控件在旋转平板电脑时切换VisualStates,则将控件的Loaded事件挂钩到LayoutAwarePage上的StartLayoutUpdates方法.

如您所见,每当状态发生变化时,它将运行“InvalIDateVisualState”,它将遍历接收LayoutUpdates的所有控件,并手动将其visualstatemanager设置为适当的状态.

所以在你所拥有的代码中,你需要为景观设置一个VisualState – 我相信它将被称为FullScreenLandscape但我不记得了 – 然后将StartLayoutUpdates添加到VariableSizeDWrapGrID控件的Loaded事件中.这假设您的页面是LayoutAwarePage.老实说,如果你想这样做,你应该这样做.由于这个原因,他们已经包含了所有样板代码.

希望有所帮助.

总结

以上是内存溢出为你收集整理的c# – 如何在嵌套元素上设置可视状态?全部内容,希望文章能够帮你解决c# – 如何在嵌套元素上设置可视状态?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1228908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存