2017-01-12 3 views
-4

Hallo Ich habe eine Frage zu Polylinien in WPF. Wie markieren Sie Punkte in der Polylinie, zum Beispiel Linien sind rot, aber Punkte in mypolyline.Punkte sind blau?WPF-Polylinie - wie Punkte hervorheben?

+0

Bitte nehmen Sie sich einen Blick auf [Was soll ich tun, wenn jemand meine Frage beantwortet?] (Http://stackoverflow.com/help/someone-answers) in der Hilfe. – Clemens

Antwort

1

Ein Polyline kann nicht aus der Box, da es als eine Sammlung von verbundenen Liniensegmenten nur rendert.

Sie könnten jedoch eine ItemsControl hinzufügen, die die Punkte wie unten gezeigt rendert. Es verwendet Line Elemente der Länge Null, aber mit runden Start- und Endkappen, um einen Punkt zu zeigen.

<Polyline x:Name="polyline" Points="10,10 50,50 90,10" Stroke="Red"/> 

<ItemsControl ItemsSource="{Binding Points, ElementName=polyline}"> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <Canvas/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemContainerStyle> 
     <Style TargetType="ContentPresenter"> 
      <Setter Property="Canvas.Left" Value="{Binding X}"/> 
      <Setter Property="Canvas.Top" Value="{Binding Y}"/> 
     </Style> 
    </ItemsControl.ItemContainerStyle> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Line Stroke="Blue" StrokeThickness="5" 
        StrokeStartLineCap="Round" StrokeEndLineCap="Round"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl>