禁用WPF窗口填充

qq24tv8q  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(109)
<Window Title="MainWindow" Height="512" Width="512" Background="Black" Margin="0">
    <Grid Margin="0" x:Name="ABE">
        <Image x:Name="ImageViewer" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left" Width="512" Margin="0" padding="0"/>
    </Grid>
</Window>

字符串

  • 窗口的ActualWidth属性为512
  • ActualWidth属性为496

有16个单位的差异,我怎么才能摆脱这种差异

nnsrf1az

nnsrf1az1#

它是旧的、传统的窗口边界(位置和大小)和“扩展帧边界”之间的差距。后者实际上是可见的窗口边界,可以通过DWMWA_EXTENDED_FRAME_BOUNDS的DwmGetWindowAttribute函数获得。在WPF的情况下,当WindowStyle=None且AllowsTransparency=True时,这两个边界匹配。
据我所知,当显示器DPI为96(默认为100%)时,间隙的厚度为7px(左,右,下),并随着显示器DPI的增加而增加。你可以通过搜索上面的关键词找到一些技巧来处理这个差距。

相关问题