Мне нужно добавить несколько кнопок в групповой ящик в wpf, но я не могу. Мне нужно создать клавиатуру для банкомата со всеми номерами, но если я попытаюсь создать кнопку номер 2, кнопка номер 1 исчезнет. что не так?
<Window x:Name = "Win_Users" x:Class = "ATM_Simulator.WindowUsers"
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:ATM_Simulator"
mc:Ignorable = "d"
Title = "WindowUsers" Height = "300" Width = "500">
<Grid>
<GroupBox x:Name = "grbx_key_pad" Header = "Key Pad" HorizontalAlignment = "Left" Height = "220" Margin = "26,10,0,0" VerticalAlignment = "Top" Width = "189">
<Button x:Name = "btn_1" Content = "1" HorizontalAlignment = "Left" Margin = "10,13,0,0" VerticalAlignment = "Top" Width = "29" Height = "32"/>
</GroupBox>
<GroupBox x:Name = "grbx_select_transaction" Header = "Select Transaction :" HorizontalAlignment = "Left" Height = "88" Margin = "291,23,0,0" VerticalAlignment = "Top" Width = "179"/>
<GroupBox x:Name = "grbx_select_account" Header = "Select Account" HorizontalAlignment = "Left" Height = "92" Margin = "291,138,0,0" VerticalAlignment = "Top" Width = "179"/>
<Button x:Name = "btn_submit" Content = "Submit" HorizontalAlignment = "Left" Margin = "291,239,0,0" VerticalAlignment = "Top" Width = "75"/>
<Button x:Name = "btn_close" Content = "Close" HorizontalAlignment = "Left" Margin = "393,239,0,0" VerticalAlignment = "Top" Width = "77"/>
</Grid>





Вы должны поместить контейнер внутри GroupBox, например, Grid будет хорошим выбором:
<GroupBox x:Name = "grbx_key_pad" Header = "Key Pad" HorizontalAlignment = "Left" Height = "220" Margin = "26,10,0,0" VerticalAlignment = "Top" Width = "189">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button x:Name = "btn_1" Grid.Column = "0" Content = "1" Width = "29" Height = "32"/>
<Button x:Name = "btn_2" Grid.Column = "1" Content = "2" Width = "29" Height = "32"/>
<!-- more buttons -->
<Button x:Name = "btn_4" Grid.Row = "1" Grid.Column = "0" Content = "4" Width = "29" Height = "32"/>
<!-- yet more buttons -->
</Grid>
</GroupBox>
Спасибо, это мой первый проект на WPF, я много борюсь, тоже мой родной язык, так что это означает, что я знаю совсем немного. Я пробовал, но там написано, что свойство content установлено более одного раза. Я понятия не имею, что делать.
Я мог бы добавить свой первый столбец с тремя кнопками, 1,4 и 7 (я поместил внутри стековой панели), но теперь я не могу добавить второй столбец ..... :(
Вместо этого используйте сетку с 3 столбцами и 4 строками. Или в StackPanel поместите еще 3 StackPanel и добавьте к ним кнопки. Но в этом случае сетка более элегантна.
Вы можете выразить свою благодарность, приняв ответ;)
Вы должны использовать
RowDefinitionsи ColumnDefinitions для вашегоGrid. С прочной конструкцией вы теряете множество преимуществ. По мере того, как вы это делаете, вы видите, например, в этом руководстве: wpf-tutorial.com/panels/grid-rows-and-columns