我在C#代码中创建了一个ListBox,我需要用C#编写这段代码,虽然我不确定如何做,
<Grid>
<Grid.Resources>
<Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</Grid.Resources>
<ListBox Margin="100" ItemsSource="{Binding MyList}"
ItemContainerStyle="{StaticResource ListBoxItemStyle}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding}"
Background="LightYellow"
TextWrapping="Wrap" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
更具体地说,我如何用C#
写这个 <Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
和
ItemContainerStyle="{StaticResource ListBoxItemStyle}"
答案 0 :(得分:3)
您可以通过以下方式创建样式:
Style style = new Style(typeof(ListBoxItem));
style.Setters.Add(new Setter(Control.HorizontalContentAlignment, HorizontalAlignment.Stretch));
然后您可以通过以下方式设置:
listBox.ItemContainerStyle = style;
答案 1 :(得分:0)
Reed Copsey发布的答案将有效。
一个天真的替代方案(虽然很可能更“有效”,因为它是显式的)是在构造它们时将ListBoxItem对象的HorizontalContentAlignment属性设置为HorizontalAlignment.Stretch(如果你也在代码中构造它们)。
ListBoxItem i = new ListBoxItem { HorizontalContentAlignment = HorizontalAlignment.Stretch };