0

要素内TextBlockTextBox存在するすべてのグローバルスタイルを定義する必要があります。ItemsControl

すべてのTextBlock要素の幅を100にして左揃えにし、TextBox要素の幅を50にして右揃えにする必要があります。

どうすればこれを達成できますか?

4

2 に答える 2

2

ItemsControl.Resources内でスタイルを宣言することもできます

        <ItemsControl ItemsSource="{Binding Persons}">
        <ItemsControl.Resources>
            <Style x:Key="TxtBlk1" TargetType="{x:Type TextBlock}">
                <Setter Property="Foreground"  Value="red"/>
                <Setter Property="FontSize" Value="56"/>
                <Setter Property="HorizontalAlignment" Value="Right"/>
            </Style>

        </ItemsControl.Resources>
        <ItemsControl.ItemTemplate>

            <DataTemplate>
                <TextBlock Text="{Binding Name}" Style="{StaticResource TxtBlk1}"></TextBlock>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
于 2012-04-18T17:38:50.550 に答える
2

あなたの「ItemsControl要素内に存在する」ことは理解できませんが、ItemsTemplateについて話している場合は、このように機能するはずです

<Style x:Key="myTextBoxStyle">
    <Setter Property="Width" Value="50"/>
    <Setter Property="HorizontalAlignment" Value="Right"/>
</Style>

<Style x:Key="myTextBlockStyle">
    <Setter Property="Width" Value="100"/>
    <Setter Property="HorizontalAlignment" Value="Left"/>
</Style>

<ItemsControl>
    <ItemsControl.ItemsTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Style="{StaticResource myTextBlockStyle}"/>
                <TextBox Style="{StaticResource myTextBoxStyle}"/>
            <Grid>
        <DataTemplate>
    </ItemsControl.ItemsTemplate>
</ItemsControl>

これにより、myTextBoxStyle を使用するテキストボックスと myTextBlockStyle を使用するテキストブロックを使用して、ItemsControl 内のすべての項目が表示されます。

于 2012-04-18T16:08:45.443 に答える