WPF自动调整大小元素 [英] WPF auto resize elements
问题描述
调整应用程序窗口大小时,我希望其中的元素也按比例调整大小. 那可能吗?我尝试使用谷歌搜索,但实际上找不到与此相关的任何内容. 我的XAML代码:
When application window is resized I want that the elements in it would resize proportionally too. Is that possible? I tried googling but couldn't really find anyting related to this. My XAML code:
<Window x:Class="app.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" KeyDown="Window_KeyDown">
<Grid>
<TabControl Name="MyTabControl">
<TabItem Name="pradzia" Header="Pradžia" IsSelected="True">
<Button Content="Pradžia" Height="55" Name="button1" Width="125" Click="button1_Click" />
</TabItem>
<TabItem Header="Vykdyti" Name="vykdyti" IsEnabled="False">
<Grid Button.Click="Grid_Click">
<Button Content="1" Height="50" HorizontalAlignment="Left" Margin="6,0,0,6" Name="button2" VerticalAlignment="Bottom" Width="125" FontSize="20" />
<Button Content="2" Height="50" HorizontalAlignment="Center" Name="button3" VerticalAlignment="Bottom" Width="125" FontSize="20" Margin="184,0,184,6" />
<Button Content="3" Height="50" HorizontalAlignment="Right" Margin="362,0,0,6" Name="button4" VerticalAlignment="Bottom" Width="125" FontSize="20" />
<TextBlock Height="23" HorizontalAlignment="Center" Name="textBlock1" Margin="0,15,0,0" Text="Kiek gyvūnų paveiksliuke?" VerticalAlignment="Top" FontSize="16" />
<Image Height="150" HorizontalAlignment="Center" Margin="0,-25,0,0" Name="mainImage" Stretch="Uniform" VerticalAlignment="Center" Width="200" />
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
推荐答案
您似乎在不实际使用网格的主要功能的情况下使用了网格:Rows&列
使用它们,您可以通过定义星形行和列来使布局按比例分配空间.
You seem to use a grid without actually utilizing its prime functionality: Rows & Columns
Using them you can make the layout allocate space proportially by defining star-sized rows and columns.
例如
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<!-- Note that width and height are not set to make it size to the grid cell -->
<Button Grid.Row="1" Grid.Column="1" Content="Lorem Ipsum"/>
</Grid>
</Window>
(您可以在 Kaxaml 中尝试)
(You could try this in Kaxaml)
如果通过按比例调整大小实际上是指尺寸而不是分配的布局空间,请使用
If by resizing proportionally you actually mean size rather than allocated layout space then use a Viewbox
.
这篇关于WPF自动调整大小元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!