最初に私の悪い英語を許してください。
Grid.SetRow()
またはの使用に問題がありsetValue(Grid.RowProperty, rowIndex)
ます。要素はインデックスになりますが、それらは互いに重なり合っています..
XAML 定義:
<UserControl x:Class="LangproWPF.FrmSM_ItemsGroup"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Button Name="btnSM_ItemGroupAdd" Style="{StaticResource ResourceKey=standardButtons}" Grid.Column="0" Grid.Row="1" Click="btnSM_ItemGroupAdd_Click">Wareng. anlegen</Button>
<Button Name="btnSM_ItemGroupShow" Style="{StaticResource ResourceKey=standardButtons}" Grid.Column="1" Grid.Row="1">Wareng. anzeigen</Button>
<Button Name="btnSM_ItemGroupAdd1" Style="{StaticResource ResourceKey=standardButtons}" Grid.Column="0" Grid.Row="2" Click="btnSM_ItemGroupAdd_Click">Wareng. anlegen</Button>
<Button Name="btnSM_ItemGroupShow2" Style="{StaticResource ResourceKey=standardButtons}" Grid.Column="1" Grid.Row="2">Wareng. anzeigen</Button>
<Button Name="btnSM_ItemGroupAdd3" Style="{StaticResource ResourceKey=standardButtons}" Grid.Column="0" Grid.Row="3" Click="btnSM_ItemGroupAdd_Click">Wareng. anlegen</Button>
<Button Name="btnSM_ItemGroupShow4" Style="{StaticResource ResourceKey=standardButtons}" Grid.Column="1" Grid.Row="3">Wareng. anzeigen</Button>
</Grid>
<Grid Name="grdSM_ItemGroupHolder" Grid.Row="1" Background="LightSteelBlue">
</Grid>
</Grid>
</UserControl>
コードで生成された行とコンテンツ
// first remove old elements from grid
grdSM_ItemGroupHolder.Children.Clear();
grdSM_ItemGroupHolder.ColumnDefinitions.Clear();;
// create columns for the Grid
ColumnDefinition colTitle = new ColumnDefinition(){ Width = new GridLength(250)};
ColumnDefinition colControls = new ColumnDefinition();
grdSM_ItemGroupHolder.ColumnDefinitions.Add(colTitle);
grdSM_ItemGroupHolder.ColumnDefinitions.Add(colControls);
grdSM_ItemGroupHolder.ShowGridLines = true;
// define also the first row
RowDefinition row = new RowDefinition();
row.Height = new GridLength(100,GridUnitType.Star);
grdSM_ItemGroupHolder.RowDefinitions.Add(row);
// Form elements
Label lblIGID = new Label(){ Name="lblSM_IGID_info", Content="Die ID wird automatisch vergeben"};
grdSM_ItemGroupHolder.Children.Add(lblIGID);
Grid.SetRow(lblIGID,0);
Grid.SetColumn(lblIGID,0);
Grid.SetColumnSpan(lblIGID,2);
TextBox txtIGID = new TextBox(){ Name="txtSM_ItemGroupID"};
Grid.SetColumn(tbIGID, 0);
Grid.SetRow(tbIGID, 1);
TextBlock tbIGName = new TextBlock(){Name="tbSM_ItemGroupName", Text="Enter a name"};
Grid.SetColumn(tbIGName,0);
Grid.SetRow(tbIGName,1);
Button btnIGReset = new Button() {Name="btnSM_ItemGroupAddReset", Content="Zurücksetzen"};
grdSM_ItemGroupHolder.Children.Add(btnIGReset);
Grid.SetRow(btnIGReset,2);
Grid.SetColumn(btnIGReset,0);
Button btnIGSave = new Button(){Name="btnSM_ItemGroupAddSave", Text="Speichern"};
grdSM_ItemGroupHolder.Children.Add(btnIGSave);
Grid.SetRow(btnIGSave,2);
Grid.SetColumn(btnIGSave,1);
行が互いに重なっているように見えます.また、最後の2つのボタンしか見えません..他の要素が後ろにあります. このコードを使用して必要なすべての行を追加すると:
RowDefinition row1 = new RowDefinition();
row1.Height = new GridLength(100, GridUnitType.Star);
grdSM_ItemGroupHolder.RowDefinitions.Add(row1);
RowDefinition row2 = new RowDefinition();
row2.Height = new GridLength(100, GridUnitType.Star);
grdSM_ItemGroupHolder.RowDefinitions.Add(row2);
できます。私は今何時間も探しています..誰かがそれを解決する方法を知っていることを願っていますか?