Code Bye

问一下在WPF中这个效果怎么实现


求一个WPF的解决方案。
这个是股票中的成交量,从左往右排序,左侧满了,就开始填充第二列。第三列。
解决方案

10

假设你每一列都是一个ListView,你可以限定每一个ListView最大50条数据,超过50条就满了。
首先在最外面放一个ScrollViewer。ScrollViewer的内容是一个StackPanel,设置StackPanel的Orientation为Horizontal,表示水平排列。然后往StackPanel里面加ListView,当ListView的数据达到50条后,就再加一个新的。

10

比较简单的做法就是使用WrapPanel,缺点呢就是要固定大小,局限比较大。
<WrapPanel Orientation="Vertical" Width="420" Height="150">
    <WrapPanel.Resources>
        <Style TargetType="TextBlock" >
            <Setter Property="Width" Value="200" />
        </Style>
    </WrapPanel.Resources>
    <TextBlock Text="hello1" />
    <TextBlock Text="hello2" />
    <TextBlock Text="hello3" />
    <TextBlock Text="hello4" />
    <TextBlock Text="hello5" />
    <TextBlock Text="hello6" />
    <TextBlock Text="hello7" />
    <TextBlock Text="hello8" />
    <TextBlock Text="hello9" />
    <TextBlock Text="helloA" />
    <TextBlock Text="helloB" />
    <TextBlock Text="helloC" />
    <TextBlock Text="helloC" />
    <TextBlock Text="helloE" />
</WrapPanel>

比较通用的做法,就是对ItemsControls,或ListBox进行继承或改样,使用本人的布局逻辑。
缺点是要本人写比较多的代码。

10

股票软件,以前做过一年多,你现在只考虑展示,后期会有很多功能需要添加的,建议基于itemcontrol本人写个自定义控件。

10

引用:
Quote: 引用:

股票软件,以前做过一年多,你现在只考虑展示,后期会有很多功能需要添加的,建议基于itemcontrol本人写个自定义控件。

不是很明白,本人应该怎么做呢,本人现在做出来的是四个gridview,但是感觉这样不太合适。

本人写个类继承自itemscontrol,重写arrangeoverride等布局方法,按你的需求对itemscontrol里的item进行布局


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下在WPF中这个效果怎么实现