窗口和画布上的WPF单位是不同的。什么是窗户尺寸单位?

时间:2016-11-22 18:22:01

标签: wpf xaml

当我创建一个WPF项目并运行下面的代码时,我会看到下面的窗口。我很困惑,因为椭圆直径和窗口宽度/高度都是“200”,但是椭圆不适合窗口。

另外,我没有张贴图片,但我尝试在之前的实验中将窗口的高度和宽度设置为96,并且高度小于宽度。宽高比有点像我的显示器的宽高比。

我在WPF中看到每个单位是1/96英寸。我认为画布中的椭圆是正确的。那么,窗户大小呢?它使用什么单位?

图像:

Simple WPF application window image.

代码:

<Window x:Class="clock2.MainWindow"
        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:clock2"
        mc:Ignorable="d"
        Title="MainWindow" Height="200" Width="200">
    <Grid>
        <Canvas ClipToBounds="True">
            <Ellipse Canvas.Left="0.0" Canvas.Top="0.0" Width="200.0" Height="200.0" Fill="lightgray" />

        </Canvas>

    </Grid>
</Window>

1 个答案:

答案 0 :(得分:0)

窗口的宽度和高度包括边框和标题栏的尺寸。

改为设置网格的大小,并在窗口上设置SizeToContent="WidthAndHeight"

<Window ... SizeToContent="WidthAndHeight">
    <Grid Height="200" Width="200">
        <Canvas ClipToBounds="True">
            <Ellipse Canvas.Left="0.0" Canvas.Top="0.0"
                     Width="200.0" Height="200.0" Fill="LightGray" />
        </Canvas>
    </Grid>
</Window>