2011-01-07 32 views
9

Haritadaki bir yolu temsil edecek bir yol çizmek için wpf Yol öğesini kullanmanın bir yolunu arıyorum. Köşe koleksiyonu içeren bir rota sınıfına sahibim ve bunu ciltleme için kullanmak istiyorum. Gerçekten nasıl başlayacağımı bilmiyorum .. Herhangi bir ipucu? Eğer bağlanma için gerekirYol çizimi ve veri bağlama

cevap

21

Önemli olan yolu Data olarak gerekecektir Geometry içine noktaları döner bir dönüştürücü burada, Geometri için System.Windows.Point -array benim tek yönlü dönüştürücü neye benzediği:

Artık tüm bunlar gerçekten bir örnek oluşturmak ve onu ciltleme için dönüştürücü olarak kullanmaktır. Ne XAML gibi görünebilir:

<Grid> 
    <Grid.Resources> 
     <local:PointsToPathConverter x:Key="PointsToPathConverter"/> 
    </Grid.Resources> 
    <Path Data="{Binding ElementName=Window, Path=Points, Converter={StaticResource ResourceKey=PointsToPathConverter}}" 
      Stroke="Black"/> 
</Grid> 

Eğer yardımcı INotifyPropertyChanged/INotifyCollectionChanged

Hope gibi bağımlılık özellikleri veya arayüzleri ile çalışmalıdır otomatik olarak güncellenmesini bağlama gerekirse: D

+0

Müthiş:

<Window.Resources> <yourNamespace:PathStrings x:Key="pathStrings"/> </Window.Resources> 
sonra bu şekilde bağlamak. Dönüştürücüleri daha önce yazdım ama bir şekilde anlayamadım. DataTemplates veya stilleri veya bunun gibi bir şeyi kullanmayı düşünüyordum, ama bu harika bir çözüm. Teşekkür ederim. – kubal5003

+0

Yardım ettiğine sevindim! –

+0

@PortlandRunner: Sadece Point [] türünün bir özelliğidir, tekil bağlamaların hata ayıklaması bu cevabın kapsamı değildir. –

0

Ayrıca Sonra

public static class PathStrings 
{ 
    public const string Add = "F1 M 22,12L 26,12L 26,22L 36,22L 36,26L 26,26L 26,36L 22,36L 22,26L 12,26L 12,22L 22,22L 22,12 Z"; 
} 

kaynak bir PathStringoluşturun: Eğer bu şekilde deneyebilirsiniz

<Path Stroke="Black" Fill="Black" 
     Data="{Binding Source={StaticResource pathStrings}, Path=Add}"></Path> 
+0

Teşekkürler, son 6 yıldır bununla uğraşıyordum :) – kubal5003