簡體   English   中英

如何根據窗口的大小調整元素的大小

[英]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&#xA;" 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM