WPF:不能制作1像素宽的虚线

时间:2016-09-29 13:24:35

标签: wpf line snapstodevicepixels

我在wpf中有两个组件,并希望在它们之间做一个1像素的虚线。没有设法使用stackoverflow中提到的任何技巧来实现这一点。

添加了这个wpf代码的这个空项目演示了这个问题,当应用程序调整大小时,该行将不时消失。删除RenderOptions.EdgeMode ="别名"而是将线宽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>

0 个答案:

没有答案