c# wpf listbox

qq_37622820 2017-12-07 01:11:53


我的listbox有这两个属性,在xaml里 <Listbox>里可以直接设置,为什么我想在cs文件 动态创建一个 就找不到这个属性呢。
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37622820 2017-12-08
  • 打赏
  • 举报
回复
引用 7 楼 zhuo_wp 的回复:
ListBox的默认容器是VirtualizingStackPanel,这个容器跟StackPanel很类似,只能让容器内的控件按照行或者列进行排列,没法进行自动换行。 如果你要有换行的功能,那就要修改容器为WrapPanel 不过要注意这样一来就不能用ListBox的虚拟化功能了。
好吧, 但是我在xaml里写的时候,直接那么写会自动换行的根据宽度
zhuowp 2017-12-07
  • 打赏
  • 举报
回复
ListBox的默认容器是VirtualizingStackPanel,这个容器跟StackPanel很类似,只能让容器内的控件按照行或者列进行排列,没法进行自动换行。 如果你要有换行的功能,那就要修改容器为WrapPanel 不过要注意这样一来就不能用ListBox的虚拟化功能了。
qq_37622820 2017-12-07
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
是这样的。第二参数应该是一个ScrollBarVisibility的枚举值。换行和这个属性没关系。
那大神指导怎么写自动换行吗,我以前 <ListBox Margin="10,46,0,46" IsSynchronizedWithCurrentItem="True" Name="listBox6" SelectedIndex="0" HorizontalAlignment="Left" Width="770" Height="300" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Visible"> <ListBox.ItemsPanel> <ItemsPanelTemplate > <WrapPanel IsItemsHost="True"></WrapPanel> </ItemsPanelTemplate> </ListBox.ItemsPanel> </ListBox> 在xaml写好的时候这个就自动换行,但是现在我后台创建的话 listbox.ItemsPanel = (ItemsPanelTemplate)System.Windows.Markup.XamlReader.Parse("<ItemsPanelTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><WrapPanel Orientation=\"Horizontal\" ScrollViewer.CanContentScroll=\"True\"></WrapPanel></ItemsPanelTemplate>"); 网上说用这个方法,然后只是从纵向排序变成横向排序 但是却不换行了
exception92 2017-12-07
  • 打赏
  • 举报
回复
是这样的。第二参数应该是一个ScrollBarVisibility的枚举值。换行和这个属性没关系。
qq_37622820 2017-12-07
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
动态创建用SetVaue方式 设置依赖项属性的值


listbox.SetValue(ScrollViewer.VerticalScrollBarVisibilityProperty, scrollviewer.VerticalScrollBarVisibility);
listbox.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, scrollviewer.HorizontalScrollBarVisibility);

是这样吗,这样 滚动条确实按我想的来 但是不换行啊
qq_37622820 2017-12-07
  • 打赏
  • 举报
回复
引用 2 楼 From_TaiWan 的回复:
怎么创建的?在哪里创建的?
就是后台cs 创建的啊 ListBox listbox = new ListBox { Name = "listbox" + gridnum, Margin = new Thickness(10, 46, 0, 46), IsSynchronizedWithCurrentItem = true, SelectedIndex = 0, HorizontalAlignment = HorizontalAlignment.Left, Width = 770, Height = 300, };
秋的红果实 2017-12-07
  • 打赏
  • 举报
回复
怎么创建的?在哪里创建的?
exception92 2017-12-07
  • 打赏
  • 举报
回复
动态创建用SetVaue方式 设置依赖项属性的值

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧