要素内TextBlock
にTextBox
存在するすべてのグローバルスタイルを定義する必要があります。ItemsControl
すべてのTextBlock
要素の幅を100にして左揃えにし、TextBox
要素の幅を50にして右揃えにする必要があります。
どうすればこれを達成できますか?
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>
あなたの「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 内のすべての項目が表示されます。