Fragensteller
VB.NET - WPF - Punkt in Image zeichnen bzw. setzen

Allgemeine Diskussion
-
Hallo zusammen,
ich habe folgendes Problem. Ich arbeite gerade an einer Software (WPF-Anwendung). Beim Öffnen eines Fensters wird ein Bild als Image angezeigt. Nun möchte ich innerhalb dieses Bildes ein Punkt setzen per Mausklick. Leider komme ich hier nicht weiter.
Ich habe einen VB6 Code zur Hilfe, mit dem dieser Vorgang bei der Vorgänger Software funktionierte. Ich bitte um Hilfe...
VB6 Code:
Public Property Get GetLocationX() As Integer GetLocationX = mintLocationX End Property Public Property Get GetLocationY() As Integer GetLocationY = mintLocationY End Property Private Sub picSchmerzlokalisation_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim KooX As Integer Dim KooY As Integer KooX = MyCInt(x) KooY = MyCInt(y) Call SchmerzmarkierungSetzen(KooX, KooY) mintLocationX = MyCInt(x) mintLocationY = MyCInt(y) End Sub Private Sub SchmerzmarkierungSetzen(KooX As Integer, KooY As Integer) picSchmerzlokalisation.Cls If KooX = 0 And KooY = 0 Then Exit Sub End If lblXKoo.Caption = KooX lblYKoo.Caption = KooY picSchmerzlokalisation.AutoRedraw = True picSchmerzlokalisation.Refresh picSchmerzlokalisation.Circle (KooX, KooY), 50, vbRed picSchmerzlokalisation.Circle (KooX, KooY), 100, vbRed picSchmerzlokalisation.Circle (KooX, KooY), 200, vbRed picSchmerzlokalisation.Refresh End Sub Public Sub SetLocation(ByVal lngX As Integer, _ ByVal lngY As Integer) mintLocationX = lngX mintLocationY = lngY SchmerzmarkierungSetzen lngX, lngY lblXKoo.DataChanged = False lblYKoo.DataChanged = False End Sub
- Verschoben Ciprian Bogdan Dienstag, 21. Januar 2014 13:50
- Typ geändert Ionut DumaModerator Montag, 27. Januar 2014 16:16 Keine Rueckmeldung des Fragenstellender
Alle Antworten
-
Hallo Robbo,
in WPF könnte man das Problem so lösen:
Im XAML-Bereich definierst du dein Bild und einen Circle:
<Grid Margin="0"> <Image Source="DeinBild.jpg" MouseDown="Image_MouseDown" /> <Ellipse HorizontalAlignment="Left" VerticalAlignment="Top" Name="circle" Height="30" Width="30" Stroke="Red" StrokeThickness="3" Visibility="Hidden" /> </Grid>
Im Code-Behind setzt du jetzt die Position dieses Circles auf die Maus-Position:
Private Sub Image_MouseDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs) circle.Visibility = System.Windows.Visibility.Visible Dim position = e.GetPosition(TryCast(sender, IInputElement)) circle.Margin = New Thickness(position.X - circle.Width / 2, position.Y, 0, 0) End Sub
Informationen zu der GetPosition-Funktionen findest du hier:
Mouse.GetPosition-Methode
Viele Grüße,
Thomas Fröhle
App-Entwickler-Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die App-Entwickler-Hotline: http://www.msdn-online.de/Hotline
Es gelten für die App-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die App-Entwickler-Hotline. -
**************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
**************************************************************************************************Ionut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.