Pregunta

¿Por qué el Camino y polilínea tienen diferentes representaciones en WPF?

Esto está ocurriendo tanto en código y mezcla, tal vez una que algo falta o presente es sólo un efecto anti aliasing.

<Window
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 x:Class="GeometryMonky.Window1"
 x:Name="Window"
 Title="Window1"
 Width="640" Height="480" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">

 <Grid x:Name="LayoutRoot">
  <Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF0000FF" Margin="100,10,0,0" Data="M289,39 L333,173" Width="1" HorizontalAlignment="Left" Height="100" StrokeThickness="1"/>

  <Polyline Stroke="#FF0000FF" Margin="115,178,417,168" StrokeThickness="1" Width="100" Height="100">
   <Polyline.Points>
    <Point>10,0</Point>
    <Point>10,100</Point>
   </Polyline.Points>
  </Polyline>
 </Grid>
</Window>

Imagen de muestra de Mezcla: http://img190.imageshack.us/img190/2965/wpfsmaple.png

Sistema de desarrollo: WinXP SP2, VS 2008 SP1 +

¿Fue útil?

Solución

Tiene que ver con los modos de dibujo de objetos no son de texto. He intentado establecer el objeto polilínea como el artículo enlazado abajo dice y hace que se vea como el camino.

Así, respuesta corta es que tiene que ver con anti-aliasing. Aquí está el artículo: Líneas solo píxel

Si desea que el comando que aquí está, dar a su polilínea un nombre y luego añadir lo siguiente en el código subyacente.

public partial class MainWindow : Window
{
    public MainWindow()
    {
        this.InitializeComponent();
        // THIS IS THE LINE THATS IMPORTANT
        pLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
   }
}

Su cambio xaml aquí:

<Polyline x:Name="pLine" Stroke="#FF0000FF" Margin="115,178,417,168" StrokeThickness="1" Width="100" Height="100">
  <Polyline.Points>
    <Point>10,0</Point>
    <Point>10,100</Point>
   </Polyline.Points>
</Polyline>

Esto hará que su objeto de polilínea se parecen a su objeto Path. Sin embargo el cambio de la trayectoria de usar no especificado no hace nada para que pueda tomar sus otros objetos de aspecto similar a la ruta, pero no viceversa.

Otros consejos

Ponga esto en su trayectoria o polilínea etiqueta xaml

RenderOptions.EdgeMode="Aliased"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top