[英]How do I resize elements based on the size of the window
我有以下代碼:
<Window x:Class="App_for_stanwood.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:App_for_stanwood"
mc:Ignorable="d"
Title="MainWindow" Height="438.983" Width="580.615" Loaded="Window_Loaded" Icon="spartans.jpg" MinWidth="580.615" MinHeight="438.983" HorizontalAlignment="Center" VerticalAlignment="Center" SizeToContent="WidthAndHeight">
<Grid>
<Image x:Name="image" HorizontalAlignment="Left" Width="567" Source="spartan.png" Margin="10,10,-4,0" Opacity="0.2" Height="398" VerticalAlignment="Top">
<Image.OpacityMask>
<ImageBrush ImageSource="spartan.png" TileMode="Tile"/>
</Image.OpacityMask>
</Image>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="573"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="408"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
<TextBox x:Name="tbID" Margin="10,36,0,0" TextWrapping="Wrap" TextChanged="tbID_TextChanged" HorizontalAlignment="Left" Width="72" Height="23" VerticalAlignment="Top" RenderTransformOrigin="0,0">
<TextBox.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="1"/>
<SkewTransform AngleY="0" AngleX="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</TextBox.RenderTransform>
</TextBox>
<Label x:Name="label" Content="Student ID: " HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" RenderTransformOrigin="0,0">
<Label.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="1"/>
<SkewTransform AngleY="0" AngleX="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Label.RenderTransform>
</Label>
<GroupBox x:Name="groupBox1" Header="Season 1" Margin="195,10,0,0" Height="199" VerticalAlignment="Top" HorizontalAlignment="Left" Width="183" RenderTransformOrigin="0.5,0">
<StackPanel>
<RadioButton x:Name="C" Content="Cheer" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="C_Click"/>
<RadioButton x:Name="CC" Content="Cross Country" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="CC_Click"/>
<RadioButton x:Name="FB" Content="Football" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="FB_Click"/>
<RadioButton x:Name="GS" Content="Girls Soccer" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="GS_Click"/>
<RadioButton x:Name="GSw" Content="Girls Swimming" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="GSw_Click"/>
<RadioButton x:Name="BT" Content="Boys Tennis" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="BT_Click"/>
<RadioButton x:Name="VB" Content="Volleyball" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="VB_Click"/>
</StackPanel>
</GroupBox>
<GroupBox x:Name="groupBox2" Header="Season 2" Margin="383,10,7,0" VerticalAlignment="Top" RenderTransformOrigin="1,0">
<StackPanel Height="177" VerticalAlignment="Top" RenderTransformOrigin="1,0">
<RadioButton x:Name="BB" Content="Boys Basketball" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="BB_Click"/>
<RadioButton x:Name="GB" Content="Girls Basketball" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="GB_Click"/>
<RadioButton x:Name="C2" Content="Cheer" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="C2_Click"/>
<RadioButton x:Name="BS" Content="Boys Swimming" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="BS_Click"/>
<RadioButton x:Name="W" Content="Wrestling" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="W_Click"/>
</StackPanel>
</GroupBox>
<GroupBox x:Name="groupBox3" Header="Season 3" Margin="195,209,195,0" RenderTransformOrigin="0.5,1">
<StackPanel>
<RadioButton x:Name="BsB" Content="Baseball" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="BsB_Click" />
<RadioButton x:Name="BG" Content="Boys Golf" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="BG_Click"/>
<RadioButton x:Name="GG" Content="Girls Golf" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="GG_Click"/>
<RadioButton x:Name="BSc" Content="Boys Soccer" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="BSc_Click"/>
<RadioButton x:Name="SB" Content="Softball" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="SB_Click"/>
<RadioButton x:Name="GT" Content="Girls Tennis" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="GT_Click"/>
<RadioButton x:Name="T" Content="Track" HorizontalAlignment="Left" Margin="3,10,0,0" VerticalAlignment="Top" Click="T_Click"/>
</StackPanel>
</GroupBox>
<Button x:Name="btLogin" Content="Login
" HorizontalAlignment="Left" Margin="100,39,0,0" VerticalAlignment="Top" Width="75" Height="20" Click="btLogin_Click" RenderTransformOrigin="0,0">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="1"/>
<SkewTransform AngleY="0" AngleX="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button>
<Label x:Name="lblInto" Content="" HorizontalAlignment="Left" Height="53" Margin="10,89,0,0" VerticalAlignment="Top" Width="180" RenderTransformOrigin="0,0">
<Label.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="1"/>
<SkewTransform AngleY="0" AngleX="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Label.RenderTransform>
</Label>
<Button x:Name="btSubmit" Content="Submit" HorizontalAlignment="Left" Margin="100,64,0,0" VerticalAlignment="Top" Width="75" Click="btSubmit_Click" RenderTransformOrigin="0,0">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="1"/>
<SkewTransform AngleY="0" AngleX="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button>
</Grid>
我正在嘗試使它變得可調整大小,但現在不是,它看起來很奇怪。 我到處走走了很多,卻沒有發現任何有用的東西。 我發現的所有內容都只是圍繞元素移動,而不是調整它們的大小。 我正在學校使用此程序注冊體育運動,我需要它能夠調整窗口大小。
將比例轉換應用於網格
<Grid.LayoutTransform>
<ScaleTransform ScaleX="1.5" ScaleY="1.5" CenterX=".5" CenterY=".5" />
在示例中,縮放比例將設置為150%。
調整窗口大小時如何調整元素大小
有一個名為ViewBox
的布局控件,該控件會自動轉換元素(而不是Resize )。 但我認為這是您想要的。 只需將您的內容放在其中:
<Window ...>
<ViewBox ...>
<Grid ...>
<!-- your code here -->
</Grid>
</ViewBox>
</Window>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.