Все кнопки должны быть как первая. Тут расписан Template (Можете не разбираться что в нем написано, суть все равно не в этом) и все настройки которые должны быть у кнопки ( Для примера одну кнопку ввел вручную, но с остальными так, увы, нельзя), а ниже XML и C#
XML
<Window x:Class="WpfProgress.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfProgress"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ControlTemplate x:Key="city" TargetType="Button">
<Grid Name ="Btn" Height="45">
<Border>
<StackPanel Orientation="Horizontal">
<Label Content="{TemplateBinding Content}"
Background="Transparent" FontSize="18" Margin="10,0,0,0"
VerticalAlignment="Center">
<Label.Style>
<Style TargetType="Label">
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path= IsMouseOver, ElementName=Btn}"
Value="true">
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
</StackPanel>
</Border>
<Border Name="MouseOverBorderCityMenu" Background="White">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Opacity" Value="0"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path= IsMouseOver, ElementName=Btn}"
Value="true">
<Setter Property="Opacity" Value="0.1"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid>
<Button Name="ButtonOpen" Width="60" Height="20"
HorizontalAlignment="Center"
Click="OnCityClick">
<Button.Content>OPEN</Button.Content>
</Button>
<Grid Name="cityMenu" HorizontalAlignment="Left" Width ="225" Visibility="Visible">
<Border BorderThickness="0" Background="Black" Opacity="0.6"/>
<StackPanel x:Name="stCityMenu" Orientation="Vertical">
<Button Template="{StaticResource ResourceKey=city}">
<Button.Content>Лондон</Button.Content>
</Button>
</StackPanel>
</Grid>
</Grid>
</Window>
ТУТ C#
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfProgress
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void OnCityClick(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 6; i++)
{
//Мне кажется, что где-то в цикле нужно его добавлять
Button button1 = new Button();
button1.Content = "text";
stCityMenu.Children.Add(button1);
}
}
}
}