-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 に答える