• Silverlight ListBox 横排显示并且自动换行


    Silverlight ListBox 横排显示并且自动换行

     

    在开发一个Silverlight项目中想用listbox来做数据绑定,并且横排显示,找了好就都没有找到理想的代码,最后在Toolkit中的demo中找到了横排的源码,现在分享给大家,

    也为自己以后使用做一次笔记。

    使用横排并自动换行,一开始想用stackpanel来做Listbox的模板,横排了,但是它不能自动换行,很郁闷,都有自己重写一个Panel的想法,最后在toolKit 的demo中发现WrapPanel可以实现横排和自动换行的功能,这样就不怕数据绑定的时候数据较多的时候横排显示无法全部显示的问题了。废话不多说,自己贴代码:

    复制代码
     <Style x:Key="WrapListBox" TargetType="ListBox">
                <Setter Property="Background" Value="Transparent"></Setter>
                <Setter Property="ItemsPanel">
                    <Setter.Value>
                        <ItemsPanelTemplate>
                            <controlsToolkit:WrapPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </Setter.Value>
                </Setter>
                <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"></Setter>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <TextBox Text="{Binding MethodName}" Background="Transparent" Width="Auto"></TextBox>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    复制代码

    使用WrapPanel 不要忘记引用 System.Windows.Controls.Toolkit这个dll就是SilverlightToolKit的dll,可以到codeplex.com 下载toolkit的源码和dll,

    然后让ListBox的Style引用这个样式,可以后台绑定数据源实现自动横排和自动换行。其中这个style的Template是可以自己定义的,可以根据自己的数据模型自己定义显示的形式,这边只是提供一个简单的,可以灵活的使用,也可以不要这个Template,在Listbox中有一个DataTemplate也可以定义数据模板。

    简单的说一下,如果有问题或者更好的建议可以分享一下

  • 相关阅读:
    随笔记:目录已在,但是导入时报ModuleNotFoundError: No module named 'config'
    随笔记:fixture的使用
    python随笔:os.path中的realpathdirnamejoin的学习
    01-移动营销设计-认识H5与广告
    Java web开发 01 入门知识
    Java 12网络编程
    java09 面向对象,封装,继承,多态
    java08 数组与集合
    java07 数组 与 开发工具IntelliJ IDEA 安装 汉化
    java06 顺序结构 选择判断结构 与循环语句
  • 原文地址:https://www.cnblogs.com/henhaoji/p/5415853.html
Copyright © 2020-2023  润新知