欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WPF窗口等比例缩放,自适应分辨率

程序员文章站 2022-06-07 15:16:17
...

使用控件说明

  1. Viewbox控件说明:

ViewBox组件的作用是拉伸或延展位于其中的组件,使之有更好的布局及视觉效果。

组件常用属性:

  • Child:获取或设置一个ViewBox元素的单一子元素。
  • Stretch:获取或设置拉伸模式以决定该组件中的内容以怎样的形式填充该组件的已有空间。
  • StretchDirection:获取或设置该组件的拉伸方向以决定该组件中的内容将以何种形式被延展。

Viewbox可更改Stretch属性选择子元素如何放入Viewbox的可用空间,Stretch的枚举如下:
  Fill:调整内容的大小以填充目标尺寸,不保留纵横比;
  None:内容保持其原始大小;
  Uniform:在保留内容原有纵横比的同时调整内容的大小,以适合目标尺寸。
  Viewbox中的Stretch属性值默认为Uniform;
  UniformToFill:在保留内容原有纵横比的同时调整内容的大小,以填充目标尺寸。 如果目标矩形的纵横比不同于源矩形的纵横比,则对源内容进行剪裁以适合目标尺寸;

  1. Canvas 控件说明:
    Canvas为容器控件,用于定位
    可以把Canvas比作一个坐标系,所有的元素通过设置坐标来决定其在坐标系中的位置.这个坐标系的原点并不是在*,而是位于它的左上角.见下图
    WPF窗口等比例缩放,自适应分辨率元素设置坐标的方法共有四个:

    Canvas.Top     设置元素距Canvas顶部的距离
    
    Canvas.Bottom  设置元素距Canvas底部的距离
    
    Canvas.Left     设置元素距Canvas左边界的距离
    
    Canvas.Right    设置元素距Canvas右边界的距离
    

窗体代码:

<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Viewbox Stretch=" fill"> 
            <Canvas Width=" 525" Height=" 350">
                <Button Content="按键1" HorizontalAlignment="Left" Margin="28,23,0,0" VerticalAlignment="Top" Width="75"/>
                <Button Content="按键2" HorizontalAlignment="Left" Margin="416,275,0,0" VerticalAlignment="Top" Width="75"/>           
            </Canvas>           
        </Viewbox>
    </Grid>
</Window>

部分解析:
由于ViewBox的stretch属性默认是Uniform,所以我们要设置为Fill,这样能保正是填充满窗体,canvas的宽度和高度必须设定,否则显示不出来。这样创建的窗体缩放时控件会变形但是布局不会发生变化。