Не могу поместить кнопку на панель в форме WPF C#

Вот код:

<DockPanel x:Name="panelButtonsLeftMenu"
           Background="#E6EBEF"
           Height="770" Margin="0,30,791,0" VerticalAlignment="Top" Width="219">
    <DockPanel x:Name="panelLogo" Height="100" LastChildFill="False" VerticalAlignment="Top" Width="219">
        <Label Content="LOGO" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Height="100" Margin="0,0,0,0" Width="219" FontSize="48" FontFamily="SF Pro Display" FontWeight="Bold"/>
    </DockPanel>
    <DockPanel Height="468" LastChildFill="False" VerticalAlignment="Top" Width="100" Margin="0,302,0,0"/>
</DockPanel>

<DockPanel x:Name="pnlBtnItem1" DockPanel.Dock="Top"
           Width="219" VerticalAlignment="Top" Margin="0,129,0,0" LastChildFill="False" Height="17" HorizontalAlignment="Left"/>
<DockPanel x:Name="panelButtonsLeftMenu_Copy"
           Background="#F6F6F6"
           Height="770" Margin="219,30,0,0" VerticalAlignment="Top">
    <DockPanel x:Name="panelLogo1" Height="100" LastChildFill="False" VerticalAlignment="Top" Width="219"/>
    <DockPanel Height="468" LastChildFill="False" VerticalAlignment="Top" Width="100" Margin="0,302,0,0"/>
</DockPanel>


Отмечу, что на WPF перешел недавно, еще одна проблема к уже имеющейся — кнопка, которую пытался разместить до этого, оказалась под панелью...
В общем набыдлокодил, прошу помощи, коллеги :)
Прикрепил пример, как должно быть:
введите сюда описание изображения


Ответы (1 шт):

Автор решения: aepot

Как-то так можно

<Window x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid Background="LightGray">
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Grid.Resources>
                <Style TargetType="DockPanel">
                    <Setter Property="Margin" Value="0,5"/>
                </Style>
                <Style TargetType="Rectangle">
                    <Setter Property="Margin" Value="5"/>
                    <Setter Property="HorizontalAlignment" Value="Right"/>
                    <Setter Property="Fill" Value="Gray"/>
                    <Setter Property="Stroke" Value="Black"/>
                    <Setter Property="StrokeThickness" Value="1"/>
                    <Setter Property="Width" Value="20"/>
                    <Setter Property="Height" Value="20"/>
                </Style>
                <Style TargetType="TextBlock">
                    <Setter Property="VerticalAlignment" Value="Center"/>
                    <Setter Property="Margin" Value="5,0"/>
                </Style>
            </Grid.Resources>
            <StackPanel SnapsToDevicePixels="True">
                <Ellipse Width="40" Height="40" StrokeThickness="1" Stroke="Black" Fill="Gray" Margin="10"/>
                <TextBlock Text="Пользователь" TextAlignment="Center" FontWeight="Bold"/>
                <TextBlock Text="текст пользователя"/>
                <DockPanel Background="White">
                    <TextBlock Text="Главная"/>
                    <Rectangle/>
                </DockPanel>
                <DockPanel>
                    <TextBlock Text="Статистика"/>
                    <Rectangle/>
                </DockPanel>
                <DockPanel>
                    <TextBlock Text="Календарь"/>
                    <Rectangle/>
                </DockPanel>
                <DockPanel>
                    <TextBlock Text="Контакты"/>
                    <Rectangle/>
                </DockPanel>
            </StackPanel>
            <DockPanel Grid.Row="2">
                <TextBlock Text="Настройки"/>
                <Rectangle/>
            </DockPanel>
        </Grid>
        <Grid Grid.Column="1">
            <TextBlock Margin="5" Text="Основная часть окна"/>
        </Grid>
    </Grid>
</Window>

введите сюда описание изображения

Я показал просто XAML визуал. Сам больше склоняюсь к MVVM и технологичным решениям, например это решение мне нравится. Другими словами, состав меню должен быть списком и из чего-то формироваться, а не просто захардкожен в разметку. То есть вместо StackPanel будет ListBox или любой другой ItemsControl. При этом WPF позволяет изменить стиль любого контрола до неузнаваемости. А Button здесь не подходит.

→ Ссылка