-1

我正在我的 C# 代码中创建一个 ListBox,我需要用 C# 编写此代码,尽管我不完全确定如何去做,

http://smehrozalam.wordpress.com/2011/01/31/silverlight-and-wpf-how-to-make-items-stretch-horizo​​ntally-in-a-listbox/

<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}"
4

2 回答 2

3

您可以通过以下方式创建样式:

Style style = new Style(typeof(ListBoxItem));
style.Setters.Add(new Setter(Control.HorizontalContentAlignment, HorizontalAlignment.Stretch));

然后,您可以通过以下方式设置:

listBox.ItemContainerStyle = style;
于 2013-11-05T19:48:57.820 回答
0

Reed Copsey 发布的答案将起作用。

一个天真的替代方案(虽然老实说可能更“有效”,因为它是明确的)是在构造它们时将 ListBoxItem 对象的 Horizo​​ntalContentAlignment 属性设置为 Horizo​​ntalAlignment.Stretch(如果您也在代码中构造它们)。

ListBoxItem i = new ListBoxItem { HorizontalContentAlignment = HorizontalAlignment.Stretch };
于 2013-11-05T19:51:49.660 回答