如何自动调整网格中内容的大小,使其适合所有分辨率

汤姆·乔尼

我正在为一个班级项目提交这段XAML代码(一个simon游戏),而Windows无法将其尺寸调整为较小的分辨率,所以我想知道您是否可以帮助我,我尝试使用* s和autos在我的Grid.Columns和Rows中,但它似乎只能垂直调整内容的大小,而不能水平调整。

我对WPF还是很陌生,所以如果有人可以帮助我,我将不胜感激。

        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:SimonWPF"
        mc:Ignorable="d"
        Title="Simon" Height="1080" Width="1920"
        SizeToContent="WidthAndHeight">

    <StackPanel HorizontalAlignment="Center" Background="White"
               >

        <!--STYLING-->
        <StackPanel.Resources>
            <Style TargetType="TextBlock" x:Key="HeadingStyle">
                <Setter Property="FontFamily" Value="Nexa Demo"/>
                <Setter Property="FontSize" Value="26"/>
                <Setter Property="Margin" Value="10,40"/>
            </Style>

            <Style TargetType="TextBlock" x:Key="SubheadingStyle">
                <Setter Property="FontFamily" Value="Nexa Demo"/>
                <Setter Property="FontSize" Value="56"/>
                <Setter Property="Margin" Value="10,-50,8,8"/>
            </Style>
        </StackPanel.Resources>
        <!--STYLING-->



        <TextBlock Style="{StaticResource SubheadingStyle}" Name="SimonStatus"
                   Text="WATCH" 
                   HorizontalAlignment="Left"
                   Margin="280,20"/>


        <!--HEADING-->


        <Grid Width="777" Height="777">
            <!--COLUMN DEFINITIONS-->
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="350*"/>
                <ColumnDefinition Width="70*"/>
                <ColumnDefinition Width="350*"/>
            </Grid.ColumnDefinitions>

            <Grid.RowDefinitions>
                <RowDefinition Height="350*"/>
                <RowDefinition Height="70*"/>
                <RowDefinition Height="350*"/>
            </Grid.RowDefinitions>
            <!--COLUMN DEFINITIONS-->

            <!--STYLING-->
            <Grid.Resources>
                <Style TargetType="Rectangle">
                    <Setter Property="Fill">
                        <Setter.Value>
                            <RadialGradientBrush>
                                <RadialGradientBrush.GradientOrigin>0.5,0.5</RadialGradientBrush.GradientOrigin>
                                <RadialGradientBrush.Center>0.5,0.5</RadialGradientBrush.Center>
                                <RadialGradientBrush.RadiusX>0.5</RadialGradientBrush.RadiusX>
                                <RadialGradientBrush.RadiusY>0.5</RadialGradientBrush.RadiusY>
                                <RadialGradientBrush.Opacity>0</RadialGradientBrush.Opacity>
                                <GradientStop>
                                    <GradientStop.Color>White</GradientStop.Color>
                                    <GradientStop.Offset>0</GradientStop.Offset>
                                </GradientStop>
                                <GradientStop>
                                    <GradientStop.Color>Blue</GradientStop.Color>
                                    <GradientStop.Offset>1.9</GradientStop.Offset>
                                </GradientStop>
                            </RadialGradientBrush>
                        </Setter.Value>
                    </Setter>
                </Style>
            </Grid.Resources>
            <!--STYLING-->

            <!--GRADIENT SECTION-->
            <Rectangle Grid.Column="2" Grid.Row="0"
                       Fill="Blue"
                       RadiusX="0,100"
                       RadiusY="0,55"/>
            <Rectangle Grid.Column="2" Grid.Row="0"
                       Name="BlueBlock"
                       RadiusX="0,100"
                       RadiusY="0,55">
                <Rectangle.Fill>
                    <RadialGradientBrush 
                        x:Name="BlueBlockGradient"
                        GradientOrigin="0.5,0.5"
                        Center="0.5,0.5"
                        RadiusX="0.5"
                        RadiusY="0.5"
                        Opacity="0">
                        <GradientStop Color="White" Offset="0"
                                      x:Name="WhiteStop4"/>
                        <GradientStop Color="Blue" Offset="1.9"
                                       x:Name="BlueStop"/>

                    </RadialGradientBrush>
                </Rectangle.Fill>
            </Rectangle>


            <!--GRADIENT SECTION-->
            <Rectangle Grid.Column="0" Grid.Row="2"
                       Fill="Orange"
                        RadiusX="0,100"
                       RadiusY="0,55"/>
            <Rectangle Grid.Column="0" Grid.Row="2"
                       Name="OrangeBlock"
                       RadiusX="0,100"
                       RadiusY="0,55">
                <Rectangle.Fill>
                    <RadialGradientBrush 
                        x:Name="OrangeBlockGradient"
                        GradientOrigin="0.5,0.5"
                        Center="0.5,0.5"
                        RadiusX="0.5"
                        RadiusY="0.5"
                        Opacity="0">
                        <GradientStop Color="White" Offset="0"
                                      x:Name="WhiteStop3"/>
                        <GradientStop Color="Orange" Offset="1.9"
                                       x:Name="OrangeStop"/>

                    </RadialGradientBrush>
                </Rectangle.Fill>
            </Rectangle>





            <!--GRADIENT SECTION-->
            <Rectangle Grid.Column="2" Grid.Row="2"
                       Fill="Green"
                        RadiusX="0,100"
                       RadiusY="0,55"/>
            <Rectangle Grid.Column="2" Grid.Row="2"
                       Name="GreenBlock"
                       RadiusX="0,100"
                       RadiusY="0,55">
                <Rectangle.Fill>
                    <RadialGradientBrush 
                        x:Name="GreenBlockGradient"
                        GradientOrigin="0.5,0.5"
                        Center="0.5,0.5"
                        RadiusX="0.5"
                        RadiusY="0.5"
                        Opacity="0">
                        <GradientStop Color="White" Offset="0"
                                      x:Name="WhiteStop2"/>
                        <GradientStop Color="Green" Offset="1.9"
                                       x:Name="GreenStop"/>

                    </RadialGradientBrush>
                </Rectangle.Fill>
            </Rectangle>


            <!--GRADIENT SECTION-->
            <Rectangle Grid.Column="0" Grid.Row="0"
                       Fill="Red"
                        RadiusX="0,100"
                       RadiusY="0,55"/>
            <Rectangle Grid.Column="0" Grid.Row="0" 
                       Name="RedBlock"
                       RadiusX="0,100"
                       RadiusY="0,55">
                <Rectangle.Fill>
                    <RadialGradientBrush 
                        x:Name="RedBlockGradient"
                        GradientOrigin="0.5,0.5"
                        Center="0.5,0.5"
                        RadiusX="0.5"
                        RadiusY="0.5"
                        Opacity="0">
                        <GradientStop Color="White" Offset="0"
                                      x:Name="WhiteStop"/>
                        <GradientStop Color="Red" Offset="1.9"
                                       x:Name="RedStop"/>

                    </RadialGradientBrush>
                </Rectangle.Fill>
            </Rectangle>


            <Rectangle Grid.Column="1" Grid.Row="1" Fill="LightBlue"
                       RadiusX="100"
                       RadiusY="100"
                       Name="ScoreRectangle"/>
            <TextBlock Text="0" Grid.Row="1" Grid.Column="1"
                       HorizontalAlignment="Center"
                       VerticalAlignment="Center"
                       FontSize="50"
                       FontFamily="Nexa Demo"
                       Name="Score"
                       Foreground="White"/>
        </Grid>
        <Button Content="PLAY" FontFamily="Nexa Demo" 
                Width="200" Height="90" FontSize="50
                " BorderBrush="LightBlue" 
                Margin="290,30,950,0"

                Name="PlayButton"
                Background="Transparent"
                BorderThickness="9"

                />

    </StackPanel>

</Window>

马克·费尔德曼

将外部StackPanel放在Viewbox中:

<Viewbox>
    <StackPanel HorizontalAlignment="Center" Background="White" ...>
        ... etc ...
    </StackPanel>
</Viewbox>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何自动调整html5 textarea元素的大小/使其适合初始内容?

Android xxxhdpi可绘制分辨率自动调整大小

在NativeScript中,如何使标签自动调整大小以适合内容?

如何自动调整ScrollView的大小以适合xamarin Forms中的内容

自动调整所有列的大小以适合内容

如何获得所有设备的分辨率大小图标

使用ffmpeg根据输入视频分辨率自动调整视频大小

如何使所有分辨率的右侧边距相等?

如何自动调整行的大小以使其适合CSS中的容器?

如何调整图表大小而不是屏幕分辨率?

如何调整视频分辨率?

如何在python中调整图像的大小以使其灰度低分辨率,例如MNIST时尚数据?

在PowerShell中,如何调整表格以适应屏幕分辨率?

如果分辨率大于内容区域,如何将div紧紧包裹在图像周围,又如何调整图像的大小以适合内容区域?

如何自动调整网格项目的大小以适合父高

根据屏幕分辨率自动调整网页大小

如何以不同的分辨率调整内容大小时,如何始终将页脚始终放在底部

根据分辨率调整图像大小

如何防止VLC根据查看的内容分辨率自动调整其窗口大小?

如何根据Android的分辨率调整TextView的大小

有什么方法可以调整网页的大小,使其分辨率低于设计的分辨率?

使网页适合所有分辨率

如何为所有分辨率制作全屏图像

如何为所有iPhone分辨率选择1 UIImage大小?

调整大小后,UITableViewCell中的UIImageView分辨率较低

更改分辨率时,如何调整Windows Forms表单和内容的大小?

根据屏幕分辨率调整数据网格的大小

如何使不可调整大小的桌面应用程序在所有类型的 PC 分辨率下看起来都一样

如何避免 pygame.FULLSCREEN 自动调整分辨率?