将XAML转换为C#

时间:2013-11-05 19:45:27

标签: c# silverlight xaml

我在C#代码中创建了一个ListBox,我需要用C#编写这段代码,虽然我不确定如何做,

http://smehrozalam.wordpress.com/2011/01/31/silverlight-and-wpf-how-to-make-items-stretch-horizontally-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}"

2 个答案:

答案 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对象的Horizo​​ntalContentAlignment属性设置为Horizo​​ntalAlignment.Stretch(如果你也在代码中构造它们)。

ListBoxItem i = new ListBoxItem { HorizontalContentAlignment = HorizontalAlignment.Stretch };