
我正在开发一个 Windows Phone 7应用程序,我无法弄清楚我认为对于经验丰富的人来说这是一个简单的问题.
假设我有一个由两个元素组成的布局:一个ListBox(填充了大量项目)和一个TextBlock(为用户提供一些基本指令).
当设备处于纵向方向时,我希望这些是一个在另一个之上,并且当设备方向更改为横向时,我希望它们彼此相邻.
对于纵向方向,我使用网格布局管理器,因为它允许我定义行的高度,如此…行0高度=“2 *”,行1高度=“*”
ListBox位于第0行,TextBlock位于第1行.现在,真正简洁的是将RowDeFinitions简单地更改为ColumnDeFinitions并将列表框/文本块重新分配给网格的列而不是设备切换到Landscape时的行.
但这只是我的想法.我不知道如何优雅地完成这项工作.也许有更好的方法吗?或者这可能是正确的方法,并且有一些方法正是为此目的而构建的?
谢谢你的建议!
解决方法 这对于默认的纵向配置如何: –<GrID> <GrID.RowDeFinitions> <RowDeFinition Height="2*" /> <RowDeFinition Height="*" /> </GrID.RowDefintions> <GrID.ColumnDeFinitions> <ColumnDeFinition WIDth="2*" /> <ColumnDeFinition WIDth="*" /> </GrID.ColumnDeFinitions> <ListBox x:name="ItemList" GrID.ColumnSpan="2" /> <TextBlock x:name="Instructions" GrID.Row="1" GrID.ColumnSpan="2"> Content </TextBlock>
然后在您的OrIEntationChanged事件中使用: –
if ((e.OrIEntation & PageOrIEntation.Portrait) == PageOrIEntation.Portrait){ GrID.SetRow(ItemList,0); GrID.Setrowspan(ItemList,1); GrID.SetColumn(ItemList,0); GrID.SetColumnSpan(ItemList,2); GrID.SetRow(Instructions,1); GrID.Setrowspan(Instructions,1); GrID.SetColumn(Instructions,0); GrID.SetColumnSpan(Instructions,2);}else{ GrID.SetRow(ItemList,2); GrID.SetColumn(ItemList,1); GrID.SetRow(Instructions,0); GrID.Setrowspan(Instructions,2); GrID.SetColumn(Instructions,1); GrID.SetColumnSpan(Instructions,1);} 总结 以上是内存溢出为你收集整理的silverlight – Windows Phone 7应用程序 – 方向更改全部内容,希望文章能够帮你解决silverlight – Windows Phone 7应用程序 – 方向更改所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)