【发布时间】:2017-01-24 17:21:03
【问题描述】:
我在边框内有一个非常简单的停靠面板。但是停靠面板的右侧和底部似乎有 1px 的边距。我似乎无法通过设置边距或停靠面板或设置边框的填充来摆脱它。
究竟是什么原因造成的,如何在不破解它的情况下修复它(即停靠面板上的负边距)
<Window x:Class="WPFTest.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"
mc:Ignorable="d"
Height="350" Width="525">
<Grid>
<Border BorderBrush="Black" BorderThickness="2" Padding="0">
<DockPanel Background="Blue" Margin="0"/>
</Border>
</Grid>
</Window>
没有在 Border 或 DockPanel 上定义样式。在一个全新的项目上试过这个,仍然看到白线
【问题讨论】:
-
这是一个有趣的神器。我将您的确切 XAML 粘贴到我的项目中,它按预期显示;没有白色间隙。您是否在其他可能会丢东西的容器中放置了边框?
-
你能分享更多关于 XAML 的内容吗? ScaleTransform 是否应用在任何地方?
-
@EdPlunkett 这就是该窗口的所有 xaml。这是一个新创建的项目,只有一个 MainWindow.xaml
-
@Steve 谢谢,Windows 版本实际上是我的下一个问题。你有一个非标准的字体大小或什么?在 XAML 中获得类似间隙的通常方式是因为 UI 正在缩放。你可以试试
UseLayoutRounding和SnapsToDevicePixels。 -
@EdPlunkett 我从未更改过与字体大小相关的任何内容,但 UseLayoutRounding="False" 似乎可以解决问题。如果你想写一个答案,我会接受它