Windows应用商店应用包装复选框文本

时间:2014-04-20 17:20:13

标签: wpf xaml checkbox windows-store-apps

我有一个布局,其中我有四个复选框,如果它们适合我想以横向排列显示,如果它们不将它们包装到另一条线。

我在ListView中使用WrapGrid,如下所示:

<ListView  Width="Auto">
    <ListView.ItemsPanel>
      <ItemsPanelTemplate>
         <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="4"/>
      </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <CheckBox IsChecked="True" Content="Short text"/>
    <CheckBox IsChecked="True" Content="Longer text (with explanation)" />
    <CheckBox  Content="Some other longer stuff" />
    <CheckBox  Content="ABCDEDFGHIJKLMNOPQRSTUVWXYZ"/>
</ListView>

enter image description here

它几乎表现得如此,但出于某种原因,它会从我的复选框中剪切文本,将所有这些文本设置为与第一个文档具有相同的宽度(在我的示例中为Short text)。我可以通过首先使用最长文本的复选框来解决这个问题,但我真的希望让ListView自己找出最宽项目的宽度。这可能吗?

1 个答案:

答案 0 :(得分:0)

使用 WrapPanel 并在 ListView 上设置 ScrollViewer.HorizontalScrollBarVisibility="Disabled" ,以便自动换行在case元素中不适合在给定的空间内。

<ListView Width="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <CheckBox IsChecked="True" Content="Short text"/>
    <CheckBox IsChecked="True" Content="Longer text (with explanation)" />
    <CheckBox  Content="Some other longer stuff" />
    <CheckBox  Content="ABCDEDFGHIJKLMNOPQRSTUVWXYZ"/>
</ListView>

<击>

我会在这里保留上述内容,以便如果有人偶然发现WPF的这篇文章,上述解决方案将适用于该情况。


Windows应用商店

更新

WrapGrid 是不可能的,因为它总是选择第一个项目大小。您可以阅读更多相关信息here