Ответ 1
Здесь рабочий пример:
<Window x:Class="Styles.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Styles"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.Resources>
<Style x:Key="A" TargetType="{x:Type Button}">
<Style.Setters>
<Setter Property="Content" Value="X"></Setter>
</Style.Setters>
</Style>
</Grid.Resources>
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Height="24" Width="24" Style="{StaticResource A}">
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.Items>
<DataObject></DataObject>
<DataObject></DataObject>
<DataObject></DataObject>
</ItemsControl.Items>
</ItemsControl>
</Grid>
</Window>
Edit1 Doh.. Получил это, трюк заключается в использовании ContentTemplate.
<Window x:Class="Styles.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Styles"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.Resources>
<DataTemplate x:Key="A">
<TextBlock>X</TextBlock>
</DataTemplate>
</Grid.Resources>
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Height="24" Width="24" ContentTemplate="{StaticResource A}">
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.Items>
<DataObject></DataObject>
<DataObject></DataObject>
<DataObject></DataObject>
</ItemsControl.Items>
</ItemsControl>
</Grid>
</Window>
Edit2: образец более сложного ContentTemplate:
<Window x:Class="Styles.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Styles"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.Resources>
<DataTemplate x:Key="A">
<StackPanel Width="30" Orientation="Horizontal">
<Grid Background="White" Width="10" Height="10"></Grid>
<Grid Background="Blue" Width="10" Height="10"></Grid>
<Grid Background="Red" Width="10" Height="10"></Grid>
</StackPanel>
</DataTemplate>
</Grid.Resources>
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Height="24" Width="34" ContentTemplate="{StaticResource A}">
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.Items>
<DataObject></DataObject>
<DataObject></DataObject>
<DataObject></DataObject>
</ItemsControl.Items>
</ItemsControl>
</Grid>
</Window>