首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 8 WrapPanel

Windows 8 WrapPanel
EN

Stack Overflow用户
提问于 2012-07-19 22:30:39
回答 4查看 12.5K关注 0票数 9

我遇到了自动将StackPanel拆分到下一行的问题。以下是示例代码:

代码语言:javascript
复制
<StackPanel Orientation="Horizontal" Width="180">
   <TextBlock.../>
   <TextBlock.../>
   <TextBlock.../>
   <Image.../>
    ...
</StackPanel>

现在我想实现这样的结果:当StackPanel中没有足够的空间容纳另一个元素时,应该将它放在新行中。我怎样才能做到这一点(不需要使用stackpanel)?

PS:我的目标是在一行中放置文本和图像(当然,当没有足够的空间容纳另一个元素时,它可能会中断)。也许你可以提供比使用文本块和图片更好的解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-20 00:31:04

试试WrapGrid吧,它应该能做你想做的事:http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.wrapgrid.aspx

唯一的问题(这不是一件坏事)是WrapGrid只能显示ItemsControl中的项,所以可以这样使用它(将ListView更改为任何ItemsControl):

代码语言:javascript
复制
<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapGrid Orientation="Horizontal" />
    </ItemsPanelTemplate>
</ListView.ItemsPanel>
票数 16
EN

Stack Overflow用户

发布于 2012-07-19 23:47:45

使用VariabeSizedWrapGrid而不是StackPanel,请参见http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.variablesizedwrapgrid.aspx

对于多个TextBlocks,请考虑使用具有多个运行的单个textBlock。当然,您的映像不能包含在运行中,但具有两个运行的一个TextBlock要好于连续的两个TextBlocks。

更新:这可能根本不能帮助你得到你想要的布局。您可能需要查看RichTextBlock控件,请参见http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.richtextblock.aspx

票数 2
EN

Stack Overflow用户

发布于 2012-08-31 03:09:55

开箱即用,没有适用于WinRT的WrapPanel。至少现在不是..。然而,在此期间,有一个变通办法...我已经测试过了,它工作正常。

您可以在下面的链接中查看以下链接。

http://www.codeproject.com/Articles/24141/WrapPanel-for-Silverlight-2-0

由于WrapPanel继承自Panel类,您可以创建一个WrapPanel或简单地使用您可以在上面的SLV2应用程序中找到的WrapPanel.cs代码。

然后只需包含类似代码

Xmlns:wrapPanel=“使用:您的yourWinRTApp”

……

……

它应该能起作用..。

信息摘自:

http://www.michielpost.nl/PostDetail_75.aspx

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

https://stackoverflow.com/questions/11563062

复制
相关文章

相似问题

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