Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Download:

Datei 1: MainWindow.xaml
Datei 2: MainWindow.xaml.cs
Datei 3: wpf_Demo_Grid_Columns.zip


Wenn man in WPF Spalten in ein Grid einfügt, dann macht man das, indem man eine ColumnDefinition erstellt und diese dann in dem Grid
mit ColumnDefinitions.add() oder mit ColumnsDefinitions.insert(position,InsertColumn)
Anfügt.


Fügt man dann eine Spalte mit ColumnDefinitions.Insert(1,colNeu) ein
Dann wird zwar die Spalte eingefügt
ABER: Controls, die man einfügt, werden ja mit der Position fest in das Grid geschrieben, also mit

//< Label 3 erstellen >
Label lblCol3 = new Label();
lblCol3.Content = "Column3";
Grid.SetColumn(lblCol3, 1);
_gridTest.Children.Add(lblCol3);
//</ Label 3 erstellen >




Das Beispiel zeigt die XAML Definition das einen Button zum Erstellen des Grids hat, wodurch das Grid zur Laufzeit in den beige-farbenen Block eingefügt wird.


Mit diesem Code wird auf den Event Button_Click das Grid mit zwei Spalten in das Panel eingefügt

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 wpf_Demo_Grid_Columns
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{

public static Grid _gridTest;

public MainWindow()
{
InitializeComponent();


_gridTest = new Grid();

}

private void Button_Click(object sender, RoutedEventArgs e)
{
//--< Grid erstellen >--

_gridTest.Name = "gridTest";
//--</ Grid erstellen >--
//--< Column 1 >--
//< col anfuegen >
ColumnDefinition col1 = new ColumnDefinition();
_gridTest.ColumnDefinitions.Add(col1);
//</ col anfuegen >

//< Label 1 erstellen >
Label lblCol1 = new Label();
lblCol1.Content = "Column1";
Grid.SetColumn(lblCol1, 0);
_gridTest.Children.Add(lblCol1);
//</ Label 1 erstellen >
//--</ Column 1 >--


//--< Column 2 >--
//< col anfuegen >
ColumnDefinition col2 = new ColumnDefinition();
_gridTest.ColumnDefinitions.Add(col2);
//</ col anfuegen >

//< Label 2 erstellen >
Label lblCol2 = new Label();
lblCol2.Content = "Column2";
Grid.SetColumn(lblCol2, 1);
_gridTest.Children.Add(lblCol2);
//</ Label 2 erstellen >


//< in Panel einfuegen >
pnlMain.Children.Add(_gridTest);
//</ in Panel einfuegen >

}



Im 2. Event beim Drücken des Einfügen Buttons, wird in die Position 1 zwischen den ersten beiden Spalten eine neue Column eingefügt.
ABER : durch die direkte Zuweisung von UIElementen direkt zu einer Position, werden die eingefügten Unter-Controls dennoch am alten Platz gehalten.

Grid.SetColumn(lblCol3, 2);


private void Button_Click_1(object sender, RoutedEventArgs e)
{
//--< Column 2 >--
//< col anfuegen >
ColumnDefinition col3 = new ColumnDefinition();
_gridTest.ColumnDefinitions.Insert (1,col3);
//</ col anfuegen >

//< Label 3 erstellen >
Label lblCol3 = new Label();
lblCol3.Content = "Column3";
Grid.SetColumn(lblCol3, 2);
_gridTest.Children.Add(lblCol3);
//</ Label 2 erstellen >
}
}
}

Mobile
»
C#: Tag nach Wochentag oder Wochenende prüfen
»
C#: Anzahl Tage in einem Monat berechnen
»
C#: Montag eines aktuellen Wochentages berechnen
»
C#: Suche Eintrag in Liste
»
C#: Wert in einer Dictionary finden und Vergleichen
»
C#: Ordner- Verzeichnis Name aus Pfad ermitteln
»
C#: Entfernen von Escapesequenzen
»
C#: Text ohne Sonderzeichen
»
C#, UWP: IReadOnlyList von Kontakten erstellen
»
C# Code: Suche Tag und Einfügen String in eime HTML Text

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de