Pro usnadnění práce s Gridem mě napadlo takové vylepšení jak si ulehčit práci s definování jednotlivých řádků. Místo definice v XAMLu, jsem si vytvořil vlastní Grid, který má vlastnost RowDefinitionPattern, kterou lze nastavit jednoduše na hodnotu např.": RowDefinitionPattern="50 50 150 20 1 A" (mezera slouží jako oddělovač a hodnoty jsou v celku intuitivní)

image

Dalším usnadněním, které mě v této souvislosti napadlo bylo automatické generování řádku dle toho v jakém pořadí jsou UIElementy v Gridu:

Občas se mi stává, že mám Grid rozdělený na 20 řádků a zrovna poslední řádek potřebuju vložit na první místo. Tzn. přepsat všechny vlastnosti Grid.Row což je velice otravné, obzvlášť když testujete několik variant rozložení jednotlivých prvků. Řešením může být přepsání metody OnInitialized, kde projdeme všechny UIElementy v kolekci Children a inkrementálně nastavíme Grid.Row. UIElementy budou mít tedy číslo řádku právě takové, v jakém pořadí se nacházejí v XAMLu.

image