WPF中ListBox的Item使用了StackPanel,StackPanel的长度怎么才能设置为自动的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中ListBox的Item使用了StackPanel,StackPanel的长度怎么才能设置为自动的相关的知识,希望对你有一定的参考价值。
<ListBox Name="ListBox1" Background="LightCoral" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" >-->
<TextBlock Grid.Column="0" Margin="5,10" Text="Binding Name" Width="30"/>
<TextBox Margin="0,5" Height="24" Text="Binding Text"/>
<ComboBox Margin="0,5" Height="24" ItemsSource="Binding Combo"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Listbox的宽度是可以改变的,但是每个Item里的StackPanel宽度却不能随之改变
如何解决,或者是改用其它的布局控件?
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="5,10" Text="Binding Name" Width="30"/>
<TextBox Grid.Column="1" Margin="0,5" Height="24" Text="Binding Text"/>
<ComboBox Grid.Column="2" Margin="0,5" Height="24" ItemsSource="Binding Combo"/>
</Grid>
</DataTemplate>
改成这样就可以了!~追问
改成Grid了,还是不行
Grid的大小没有跟着改变
不可能啊,请你检查一下 1.grid宽度有没有设定宽度 2.listbox有没有设定宽度 3.listboxitem有没有设定宽度 这三个都不要设定宽度的喔!
追问都没有长度限制,ListBox是在一个Grid中的,用了GridSplitter后,它的宽度是可以改变的
但是用来做Item的StackPanel或Grid就是不会自动改变宽度
晕= =,请帖代码。。。
参考技术A </StackPanel> </DataTemplate> </怎么没见你的Prog x:Class="Wpf 参考技术B 你好,请问你是用什么方法解决的?我也遇到同样的问题! 参考技术C 初学,最近也开始研究了WPF Tips: Specify background color of the selected item in listbox
当没有focus在listbox时,selectedItem的background为灰色,只有鼠标点击之后才会变成蓝色。希望即使鼠标没有点击的时候也是蓝色。
解决方法:
在xaml中添加:
<ListBox.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"/> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Red"/> </ListBox.Resources>
或在app.xaml中添加:
<Style TargetType="ListBoxItem"> <Style.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="LightBlue"/> </Style.Resources> <!--<Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="LightBlue" /> </Trigger> </Style.Triggers>--> </Style>
参考:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/38b88ef4-b4d1-4a61-a00e-e4f960896a9b/wpf-how-to-make-the-selection-item-highlight-color-stay-in-the-listbox-even-the-listbox-control?forum=wpf
https://blogs.msdn.microsoft.com/wpfsdk/2007/08/31/specifying-the-selection-color-content-alignment-and-background-color-for-items-in-a-listbox/
以上是关于WPF中ListBox的Item使用了StackPanel,StackPanel的长度怎么才能设置为自动的的主要内容,如果未能解决你的问题,请参考以下文章
WPF Tips: Specify background color of the selected item in listbox