XAML 如何调整C# WPF程序以适应任何屏幕分辨率

axr492tv  于 2023-08-01  发布在  C#
关注(0)|答案(1)|浏览(253)

我正试图弄清楚如何调整我的C# WPF程序的大小,使其基本上适合任何屏幕分辨率。我正在尝试将我的程序安装到屏幕分辨率为 1280 x 1024 的计算机上。我找不到任何关于如何准确地做到这一点的信息,当然我可以操纵程序的尺寸以适应特定的屏幕,但每台计算机的屏幕分辨率可能是不同的权利?我尝试使用这里提供的明显解决方案:Resize WPF Window and contents depening on screen resolution但它根本没有帮助。
即,我使用了:(另外,我不确定是否需要将HorizontalAlignmentVerticalAlignment也设置为“stretch”,但我还是这样做了。

Title="my screen" Height="{Binding SystemParameters.PrimaryScreenHeight}" Width="{Binding SystemParameters.PrimaryScreenWidth}" WindowStartupLocation="CenterScreen" WindowState="Maximized">
    <Grid Name="myGrid" Background="LightGray" Margin="0,0,2,-30" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <TextBox Name="stuffTB" HorizontalAlignment="Left" Height="28" Margin="751,252,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="186" />

字符串
...
每当我在尺寸为 1280 x 1024 的计算机上运行我的exe时,它会切断网格中的内容。任何建议或帮助将是伟大的,甚至链接到例子将是可怕的。先谢谢你。

ruarlubt

ruarlubt1#

如果你真的想强制调整窗口中所有控件的大小,你可以使用ViewBox https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.viewbox
但我觉得你做错了。设计好的WPF UI的基础是:
1.如果你想在不考虑内容的情况下保留窗口的某个部分/百分比,可以使用网格列和行
1.使用DockPanel、StackPanel、WrapPanel等。设置用户界面
1.使用ScrollViewer可以查看控件是否设置了一些最小尺寸,并且在特定分辨率下会被截断
看看我为你做的这个样本

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="100" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0" Grid.ColumnSpan="2" Background="Blue" Orientation="Horizontal">
            <Button>Button</Button>
            <Button>Button</Button>
            <Button>Button</Button>
        </StackPanel>
        <DockPanel Grid.Row="1" Grid.Column="1">
            <Rectangle DockPanel.Dock="Right" Width="100" Fill="Red"></Rectangle>
            <Ellipse DockPanel.Dock="Left" Fill="AliceBlue"></Ellipse>
        </DockPanel>
        <ScrollViewer Grid.Row="1">
            <StackPanel>
                <Button Height="200"></Button>
                <Button Height="200"></Button>
                <Button Height="200"></Button>
                <Button Height="200"></Button>
                <Button Height="200"></Button>
                <Button Height="200"></Button>

                <Button Height="200"></Button>
                <Button Height="200"></Button>
            </StackPanel>
        </ScrollViewer>
    </Grid>

字符串

相关问题