我在 wpf 中有两个组件,想在它们之间画一条 1 像素的虚线。没有设法使用stackoverflow中提到的任何技巧来实现这一点。
这个只添加了这个 wpf 代码的空项目演示了这个问题,当应用程序调整大小时,该行会不时消失。删除 RenderOptions.EdgeMode="Aliased" 将使行改为 2 像素宽。
<Window x:Class="DottedLineExample.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:DottedLineExample"
mc:Ignorable="d"
Title="MainWindow" Height="100" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="1" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Line
Grid.Row="1"
HorizontalAlignment="Stretch"
Stroke="Black"
X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"
StrokeDashArray="4 4"
StrokeThickness="1"
SnapsToDevicePixels="True"
UseLayoutRounding="True"
RenderOptions.EdgeMode="Aliased"
/>
</Grid>
</Window>