Wie überlagern Sie ein Rechteck auf ein Bild in WPF
Möchte ich platziere ein statisches Rechteck auf einem Bild.
Rechteck sollte ein Prozentsatz der Größe des Bildes (80%), unabhängig von der Größe des Bildes.
Habe ich versucht, das Bild in ein Canvas-Bereich und als Leinwand hintergrund, aber dann kann ich nicht das Bild zu füllen, der Umgebung.
<Canvas Grid.Row="1" Grid.Column="0">
<Canvas.Background>
<ImageBrush ImageSource="{Binding Path=Image1}"/>
</Canvas.Background>
</Canvas>
Brauchen Sie das Bild, um die Größe dynamisch nach der Ressource oder sind Sie einer festen Größe oder dehnen zu füllen, die einem anderen Bereich?
Die Bilder sind immer die gleiche Größe in Pixel, aber der verfügbare Platz in der Ansicht ist dynamisch.
Die Bilder sind immer die gleiche Größe in Pixel, aber der verfügbare Platz in der Ansicht ist dynamisch.
InformationsquelleAutor adrianm | 2009-10-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Steckte es in ein raster und dann legen Sie das Rechteck in der gleichen Zeile und Spalte. Und einen Konverter verwenden zu 80% die Größe.
XAML:
C# (Konverter):
Es gibt eine einfachere Möglichkeit als diese (kein code notwendig), aber Sie haben keine Antwort auf meine Frage in den Kommentaren auf Ihre original-Beitrag.
Getestet und es funktioniert einwandfrei. Markiert es als Antwort. Lieber codebehind verwenden anstelle von IValueConverter für spezielle Umbauten wie diesen. DependencyPropertyDescriptor.FromProperty(Bild.ActualHeightProperty, typeof(Bild)).AddValueChanged( Image1, (sender, args) => { Image1Rect.Höhe = (sender as Image).ActualHeight*0.9; });
InformationsquelleAutor Carlo
Hier ist ein Weg, können Sie es mit reinem XAML mit einem DrawingBrush zu füllen, die darüber liegenden Rechteck nur teilweise:
InformationsquelleAutor Drew Marsh