Ahoj všetko, čo som sa snažil nájsť príklady toho, ako ísť o automatickej veľkosti ovládacích prvkov, ktoré mám v rámci mriežkového ovládacieho prvku, ak je obrazovka používateľov väčšia ako predvolená veľkosť.
V súčasnosti nemôžem zmeniť veľkosť ovládacích prvkov, keď zväčším formulár. Existuje v súčasnosti nejaký kód, ktorý dokáže nájsť všetky ovládacie prvky vo vnútri mriežky a zmeniť ich veľkosť za chodu, keď sa zmení veľkosť formulára?
Môj aktuálny kód je:
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="768" Width="1024">
<Grid>
<Grid Height="115" Margin="190,0,195,145" Name="Grid1" VerticalAlignment="Bottom" Background="Cyan">
<Button Height="45" HorizontalAlignment="Left" Margin="10,10,0,0" Name="Button4" VerticalAlignment="Top">Button</Button>
<Button Height="45" HorizontalAlignment="Left" Margin="101,10,0,0" Name="Button5" VerticalAlignment="Top">Button</Button>
<Button Height="45" HorizontalAlignment="Left" Margin="192,10,0,0" Name="Button6" VerticalAlignment="Top">Button</Button>
<Button Height="45" HorizontalAlignment="Right" Margin="280,10,257,0" Name="Button7" VerticalAlignment="Top">Button</Button>
<Button Height="45" HorizontalAlignment="Right" Margin="0,10,166,0" Name="Button8" VerticalAlignment="Top">Button</Button>
<Button Height="45" HorizontalAlignment="Right" Margin="0,10,75,0" Name="Button9" VerticalAlignment="Top">Button</Button>
<Button Height="45" HorizontalAlignment="Left" Margin="10,0,0,9" Name="Button10" VerticalAlignment="Bottom">Button</Button>
<Button Height="45" HorizontalAlignment="Left" Margin="101,0,0,9" Name="Button11" VerticalAlignment="Bottom">Button</Button>
<Button Height="45" HorizontalAlignment="Left" Margin="192,0,0,9" Name="Button12" VerticalAlignment="Bottom">Button</Button>
<Button Height="45" HorizontalAlignment="Right" Margin="280,0,257,9" Name="Button13" VerticalAlignment="Bottom">Button</Button>
<Button Height="45" HorizontalAlignment="Right" Margin="0,0,166,9" Name="Button14" VerticalAlignment="Bottom">Button</Button>
<Button Height="45" HorizontalAlignment="Right" Margin="0,0,75,9" Name="Button15" VerticalAlignment="Bottom">Button</Button>
</Grid>
</Grid>
</Window>
Akákoľvek pomoc by bola skvelá! Vďaka!
odpovede:
4 pre odpoveď č. 1Zdá sa, že mriežku nepoužívate tak, ako bolo zamýšľané.
Ak chcete, aby sa vaše používateľské rozhranie dynamicky zmenilookná, nemali by ste mať (alebo aspoň minimalizovať) počet pevne kódovaných šírok a výšok. Prvý problém, ktorý vidím, je, že vnútorná mriežka má pevne kódovanú výšku 127, takže bez ohľadu na veľkosť okna táto mriežka bude vždy taká výška. Odstránenie tejto výšky je dobrý prvý krok.
Tiež si nie som istý, prečo existujú dve mriežky - nemôžu všetky tlačidlá byť len deťmi vonkajšej mriežky?
Nakoniec definujete všetky riadky alebo stĺpce v mriežke. Myslím, že ste sa pokúšali použiť VerticalAlignment
a HorizontalAlignment
vlastnosti jednotlivých tlačidiel na ovládanie, kde sa nachádzajú v okne. Je oveľa lepšie definovať riadky a stĺpce podľa toho, kde majú byť tlačidlá. MSDN obsahuje príklad použitia mriežky s viacerými riadkami a stĺpcami.