listbox横向排列

在Listbox中横向显示CheckBox

前台代码

1 <ListBox Height="30" HorizontalAlignment="Left" Margin="231,25,0,0" Name="listMonth" VerticalAlignment="Top" Width="747" >
2             <StackPanel x:Name="sp" Orientation="Horizontal">
3                 需要添加的元素
4             </StackPanel>
5 </ListBox>

后台动态添加CheckBox

1 foreach(var i in listOfMonth)
2             {
3                 CheckBox cbMonth = new CheckBox();
4                 cbMonth.Content = new TextBlock() { Text = i + "月?" };
5                 cbMonth.IsChecked = true;
6                 cbMonth.Checked += new RoutedEventHandler(cbMonth_Checked);
7                 cbMonth.Unchecked += new RoutedEventHandler(cbMonth_Checked);
8                 this.sp.Children.Add(cbMonth);
9             }

循环读取

1 foreach (var item in sp.Children)
2                 {
3                     if ((item as CheckBox).IsChecked ?? false)
4                     {
5                         int Month = Convert.ToInt32(((item as CheckBox).Content as TextBlock).Text.ToCharArray()[0].ToString());
6                      }
7                 }

除了这种方法外还有一种方式:横排模版

 1 <ListBox ItemsSource="{Binding DishesList}" Margin="0,58,0,21"
 2                      ScrollViewer.VerticalScrollBarVisibility="Disabled"
 3 ScrollViewer.HorizontalScrollBarVisibility="Disabled">
 4                 <ListBox.ItemsPanel>
 5                     <ItemsPanelTemplate>
 6                         <toolkit:WrapPanel Orientation="Horizontal"/>
 7                     </ItemsPanelTemplate>
 8                 </ListBox.ItemsPanel>
 9                 <ListBox.ItemTemplate >
10                     <DataTemplate>
11                         <!--修改圆角外边-->
12                     <Border BorderThickness="5"  BorderBrush="#FFD9D6D6" Margin="0,5,0,0" CornerRadius="5" >
13                         <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center"  Width="300"
14                                     Background="#FFD9D6D6">
15                             <StackPanel Height="80" Margin="10,0,0,0" HorizontalAlignment="Center"  Background="#FFF5F3F3">
16                                     <Image
17                                         Source="{Binding dishesimage, Converter={StaticResource ImageConver}, Mode=TwoWay}"
18                                         Style="{StaticResource imagestyle}" />
19                                 <Canvas  Height="1" Margin="0,40,0,0" Background="Black"/>
20                             </StackPanel>
21                             <StackPanel Width="250" Margin="20,0,0,0">
22                                     <TextBlock  Text="{Binding dishesname}" Style="{StaticResource titlestyle}"/>
23                                     <TextBlock  Text="{Binding dishesprice,Converter={StaticResource DispicConver},Mode=TwoWay}" Style="{StaticResource authorstyle}"/>
24                                     <TextBlock  Text="{Binding typename}" Style="{StaticResource timestyle}"/>
25                                 <!--<Canvas  Height="1" Margin="0,40,0,0" Background="Black"/>-->
26                             </StackPanel>
27                         </StackPanel>
28                     </Border>
29                 </DataTemplate>
30             </ListBox.ItemTemplate>
31             </ListBox>

时间: 2024-11-10 21:56:13

listbox横向排列的相关文章

WPF ListBox 横向排列

如果只是单纯的让ListBox可以横向配列,这样很简单,只需要更改ListBox的ItemsPanel模板就可以,例如: <ListBox> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Orientation=”Horizontal” IsItemsHost=”True”/> </ItemsPanelTemplate> </ListBox.ItemsPanel> </

Template、ItemsPanel、ItemContainerStyle、ItemTemplate(包括ListBox的Item子项是横向排列)

Template.ItemsPanel.ItemContainerStyle.ItemTemplate 分类: WPF2011-10-12 10:13 4716人阅读 评论(0) 收藏 举报 datagridwpftree 先来看一张图(网上下的图,加了几个字) 实在是有够“乱”的,慢慢来理一下: 1.Template是指控件的样式 在WPF中所有继承自contentcontrol类的控件都含有此属性,(继承自FrameworkElementdl类的TextBlock等控件无).Template

无序列表li横向排列的间隙问题

今天在写页面的时候,无意中遇到这样一个问题,就是无序列表li横向排列即做成导航栏时,列表项间有间隙. 如: 将列表项li变成列表块后(即将li标签设置为,display:inline-block后),会变成这样,中间会有间隙. 即便是将外边距.内边距都设为0后,还是有间隙.在调试了很久,还是没法解决这个问题,最后我改变了一下li的位置,结果可以了.我是这样做的. 改变li的位置后,结果如下: 好,问题成功解决了.不知园友们还有没有其他的好办法,欢迎指教.

【CSS技巧】列表横向排列的另一种方法

列表<ul><dl>等默认是纵向排列.我们需要它横向排列时通常会用float来实现,但是使用了float也通常会引发一些排版问题.今天我学到了另一种方法:设定<li>标签的display:inline,把<li>设定为内联元素来实现横向排列的效果,不需要使用float. <!doctype html> <html> <head> <meta charset="utf-8"> <titl

如何让div横向排列

方法一: 一般情况,默认的div是写一个换一行,那么如何定义两个div横向排列而不换行呢? div默认的display属性是block.所以每一个div都是新的一行,现在把display换成inline就不会换新行了. <div style="display:inline;">aaa</div><div style="display:inline;">bbb</div> 方法二: 这里使用float:right属性.f

HTML+CSS-如何定义让两个div横向排列

方法一: 一般情况,默认的div是写一个换一行,那么如何定义两个div横向排列而不换行呢? div默认的display属性是block.所以每一个div都是新的一行,现在把display换成inline就不会换新行了. <div style="background-color:#ff0000;display:inline;">aaa</div> <div style="background-color:#ffff00;display:inline

横向排列两个多个div盒子的方法(CSS浮动清除float-clear/inline)/办法

最近在做一个div css切割,昨晚发现了长期以来一直无记录下来的问题!关于兼容IE跟FF的float属性.趁现在还清醒赶紧记下笔记先:一.并排在一行的两个div样式有这种情况:ie或者ff下对于子div设置float左的时候,如果另外的子div没有设置float左的 话,两个浏览器下会有区别,具体有一个会产生间隙.兼容做法就是都设置float属性.但是记住有设置过float就要将float clear掉,不然下面的div会叠在已float的div上.我通常把清除浮动写成单独的<div clas

让横向排列的方法

方法总结: 内联 ,浮动 方法一:直接在<li>里面加样式来实现 <ul style=list-style:none;margin:0;><li style="display:inline">我要横向排列</li><li style="display:inline">Hier of chsfish </li></ul> 方法二:通过定义ul li 来实现 ul{list-style-

DIV横向排列_CSS如何让多个div盒子并排同行显示

如何让多个div盒子并排同行div横向排列显示呢? 我们先设置3个div盒子对象,什么css样式都不设置看看效果.代码如下: 三个div盒子均独占一行显示 div盒子本身默认样式属性是独占一行,而解决div独占一行方法通常有两种,一种为设置浮动,另外一种为设置display样式.接下来为大家通过文章+图片+案例方法介绍解决div盒子对象并排横向排列且同行显示方法. 一.使用css float并排显示 我们对div设置一个float浮动属性即可解决不并排显示,只要你的并排div盒子总宽度小于或等于