- 私のC#WPF Windowsアプリケーションでは、いくつかのデータを挿入するために、いくつかのラベルとテキストボックスを含むグループボックスを使用しました
- そのグループボックスのテキストボックスの横に(追加)というボタンを作成しました
- (追加)ボタンを押したら欲しい:
- グループボックスのサイズを拡大し、
- 最初のテキストボックスの下に新しいテキストボックスが表示され、さらにデータを挿入できます
- (追加)ボタンが新しいテキストボックスの横に表示されます
- 私を助けてくれたらいいのに..ありがとう
1283 次
1 に答える
2
これがあなたが望んでいるものであるかどうかを確認してください。私が使用StackPanel's
したDockPanel
もので、コンテンツが追加されるにつれて成長します。また、5つを追加TextBox's
しTextBlock's
、折りたたまれた状態で表示されます。これは、表示されていないときにスペースを占有しないことを意味します。それらをリストに追加し、ボタンをクリックしてその時点で適切なコントロールを表示したときに表示を確認します。
MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="214" Width="525" SizeToContent="WidthAndHeight">
<Grid>
<GroupBox Header="General Information" HorizontalAlignment="Left" Name="groupBox1" VerticalAlignment="Top">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<DockPanel Grid.Column="0" HorizontalAlignment="Left" >
<Button VerticalAlignment="Bottom" Height="25" Click="Button_Click" >Add</Button>
</DockPanel>
<StackPanel Name="stackpanelTB" Grid.Column="1" Orientation="Vertical" >
<StackPanel.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="0,4,0,0"/>
</Style>
</StackPanel.Resources>
<TextBox Name="textBox1" Width="240" Height="25"></TextBox>
<TextBox Name="textBox2" Width="240" Height="25"></TextBox>
<TextBox Name="textBox3" Width="240" Height="25"></TextBox>
<TextBox Name="textBox4" Width="240" Height="25"></TextBox>
<TextBox Name="textBox5" Width="240" Visibility="Collapsed" Height="25"></TextBox>
<TextBox Name="textBox6" Width="240" Visibility="Collapsed" Height="25"></TextBox>
<TextBox Name="textBox7" Width="240" Visibility="Collapsed" Height="25"></TextBox>
<TextBox Name="textBox8" Width="240" Visibility="Collapsed" Height="25"></TextBox>
<TextBox Name="textBox9" Width="240" Visibility="Collapsed" Height="25"></TextBox>
</StackPanel>
<StackPanel Name ="stackpanelCaption" Grid.Column="2" Orientation="Vertical">
<StackPanel.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="0,4,0,0"/>
</Style>
</StackPanel.Resources>
<TextBlock Name="textBlock1" HorizontalAlignment="Right" Height="25">Ingredient ID</TextBlock>
<TextBlock Name="textBlock2" HorizontalAlignment="Right" Height="25">Ingredient Name</TextBlock>
<TextBlock Name="textBlock3" HorizontalAlignment="Right" Height="25">Chemical Str</TextBlock>
<TextBlock Name="textBlock4" HorizontalAlignment="Right" Height="25">Ingredient Salts</TextBlock>
<TextBlock Name="textBlock5" HorizontalAlignment="Right" Visibility="Collapsed" Height="25"></TextBlock>
<TextBlock Name="textBlock6" HorizontalAlignment="Right" Visibility="Collapsed" Height="25"></TextBlock>
<TextBlock Name="textBlock7" HorizontalAlignment="Right" Visibility="Collapsed" Height="25"></TextBlock>
<TextBlock Name="textBlock8" HorizontalAlignment="Right" Visibility="Collapsed" Height="25"></TextBlock>
<TextBlock Name="textBlock9" HorizontalAlignment="Right" Visibility="Collapsed" Height="25"></TextBlock>
</StackPanel>
</Grid>
</GroupBox>
</Grid>
</Window>
MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
List<TextBox> tboxList = new List<TextBox>();
List<TextBlock> tblockList = new List<TextBlock>();
public MainWindow()
{
InitializeComponent();
tblockList.Add(textBlock1);
tblockList.Add(textBlock2);
tblockList.Add(textBlock3);
tblockList.Add(textBlock4);
tblockList.Add(textBlock5);
tblockList.Add(textBlock6);
tblockList.Add(textBlock7);
tblockList.Add(textBlock8);
tblockList.Add(textBlock9);
tboxList.Add(textBox1);
tboxList.Add(textBox2);
tboxList.Add(textBox3);
tboxList.Add(textBox4);
tboxList.Add(textBox5);
tboxList.Add(textBox6);
tboxList.Add(textBox7);
tboxList.Add(textBox8);
tboxList.Add(textBox9);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 9; i++)
{
if (tboxList[i].Visibility == Visibility.Collapsed)
{
tboxList[i].Visibility = Visibility.Visible;
tblockList[i].Visibility = Visibility.Visible;
break;
}
}
}
}
}
于 2013-01-01T04:16:18.330 に答える