Выравнивание элементов слева и справа в одной строкеC#

Место общения программистов C#
Anonymous
Выравнивание элементов слева и справа в одной строке

Сообщение Anonymous »

В моем приложении WPF с использованием кода программной части я создаю несколько карточек с использованием границы, к которой добавляю несколько элементов и пытаюсь сделать так, чтобы в первой строке текст был выровнен по левому краю, а кнопка — по правому краю. результат, который я ищу:
желаемый результат
Но я никак не могу этого сделать, я пробовал другие подходы с использованием сеток или DockPanels, но мне тоже не удалось правильно выровнять кнопку вправо. Вот какой результат я получаю:
полученный результат
Эсте эль кодиго, который используется:

Код: Выделить всё

Border border = new Border
{
Width = 290,
Height = 130,
Margin = new System.Windows.Thickness(10, 10, 0, 0),
CornerRadius = new CornerRadius(5),
BorderThickness = new System.Windows.Thickness(1),
BorderBrush = Brushes.Transparent,
Background = new SolidColorBrush(Color.FromArgb(255, 47, 48, 48)),
Tag = a.Id
};
border.MouseLeftButtonUp += MyBorder_MouseLeftButtonUp;

StackPanel stackPanelV = new StackPanel
{
Orientation = Orientation.Vertical
};

StackPanel stackPanelL1 = new StackPanel
{
Orientation = Orientation.Horizontal
};

TextBlock textBlockL1 = new TextBlock
{
Text = "Text line 1",
Margin = new System.Windows.Thickness(12, 10, 0, 0),
HorizontalAlignment = HorizontalAlignment.Left,
FontWeight = FontWeights.Bold,
FontSize = 16
};
ToggleSwitch toggle = new ToggleSwitch
{
IsOn = true,
Margin = new System.Windows.Thickness(0, 5, 0, 0),
HorizontalAlignment = HorizontalAlignment.Right,
OnContent = null,
OffContent = null
};
toggle.Toggled += TsActivo_Toggled;

stackPanelL1.Children.Add(textBlockL1);
stackPanelL1.Children.Add(toggle);

TextBlock textBlockL2 = new TextBlock
{
Text = "Text line 2",
Margin = new System.Windows.Thickness(12, 0, 0, 0),
FontSize = 12,
Foreground = Brushes.LightGray
};

TextBlock textBlockL3 = new TextBlock
{
Text = "Text line 3",
Margin = new System.Windows.Thickness(12, 5, 0, 0),
FontSize = 12,
Foreground = Brushes.LightGray
};

TextBlock textBlockL4 = new TextBlock
{
Text = "Text line 4",
Margin = new System.Windows.Thickness(12, 5, 0, 0),
FontSize = 12,
Foreground = Brushes.LightGray
};

stackPanelV.Children.Add(stackPanelL1);
stackPanelV.Children.Add(textBlockL2);
stackPanelV.Children.Add(textBlockL3);
stackPanelV.Children.Add(textBlockL4);

border.Child = stackPanelV;
contenedorFichas.Children.Add(border);
Большое спасибо за помощь

Подробнее здесь: https://stackoverflow.com/questions/783 ... e-same-row

Вернуться в «C#»