繁体   English   中英

如何调整C#WPF程序的大小以适合任何屏幕分辨率

[英]How to resize C# WPF Program to fit any screen resolution

我试图弄清楚如何调整C#WPF程序的大小,使其基本适合任何屏幕分辨率。 我正在尝试使我的程序适合屏幕分辨率为1280 x 1024的计算机 我找不到有关如何准确执行此操作的任何信息,当然我可以调整程序的尺寸以适合特定的屏幕,但是每台计算机的屏幕分辨率可能会有所不同,对吗? 我尝试使用此处提供的显而易见的解决方案: 调整WPF窗口的大小和依赖于屏幕分辨率的内容,但这根本没有帮助。

即我曾经使用过:(此外,我不确定是否也需要将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时,它就会切断网格中的内容。 任何建议或帮助都很好,即使链接到示例也很棒。 提前致谢。

如果您确实要强制调整Windows中所有控件的大小,则可以使用ViewBox https://msdn.microsoft.com/pl-pl/library/system.windows.controls.viewbox%28v=vs.110%29.aspx

但是IMO,您做错了。 设计良好的WPF UI的基础是:

  1. 如果您希望尽管内容保留一些东西来占据窗口的某些部分/百分比,则请使用网格列和行
  2. 使用DockPanels,StackPanels,WrapPanels等。e安排UI
  3. 使用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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM