0

我在 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>
4

0 回答 0