Wpf 强制我的网格以4:3的分辨率缩放

Wpf 强制我的网格以4:3的分辨率缩放,wpf,screen-resolution,Wpf,Screen Resolution,我将我的页面设计为4:3可伸缩,我希望我的网格在任何屏幕上都能伸缩到4:3 例如,在1900x1200上,我的网格将扩展到1600x1200,网格的每一侧将有150px。我怎样才能有这种行为 我从以下几行开始: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="1024*" />

我将我的页面设计为4:3可伸缩,我希望我的网格在任何屏幕上都能伸缩到4:3

例如,在1900x1200上,我的网格将扩展到1600x1200,网格的每一侧将有150px。我怎样才能有这种行为

我从以下几行开始:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="1024*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="768*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid Grid.Row="1"  Grid.Column="1" Name="my_grid" />
</Grid>

但我不知道如何处理4:3的事情。我想强制我的网格拉伸,直到它有可能的最高4:3分辨率,然后让两边的自由空间

你认为我只能在WPF中做到这一点吗


谢谢

您可以使用ViewBox控件。按照您所做的方式设计XAML,并将其放在其中。ViewBox将缩放以使内容适合可用大小。它不会调整内容大小,因此所有内容(比率、宽度等)都将保持不变


多亏了萨沙,我做到了:

<Viewbox Name="grid_jeu" Stretch="Uniform" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Grid.Row="1" >
           <MyControl Name="my_grid" />
        </Viewbox>

我的控件是这样设计的:

<Grid>
    <Grid.RowDefinitions>
                <RowDefinition Height="32" MaxHeight="32"/>
                <RowDefinition Height="72" MaxHeight="72"/>
                <RowDefinition Height="10" MaxHeight="10"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="20" MaxHeight="20"/>
                <RowDefinition Height="90" MaxHeight="90"/>
                <RowDefinition Height="32" MaxHeight="32"/>
            </Grid.RowDefinitions>
</Grid>


我希望只有一行和一列可以缩放。正如你所看到的,我试图设置“MaxHeight”和“MaxWidth”以避免我的行被缩放,但它不起作用。当我启动应用程序时,我有一个309px列,可以扩展到420

谢谢大家!!我尝试使用viewbox,但仍有一些问题(如我的回答中所述)