Entwickler-Ecke
WPF / Silverlight - Bild verdeckt Rahmen
AndreasK - Mi 31.05.17 11:31
Titel: Bild verdeckt Rahmen
Hallo zusammen
Mein Problem ist, daß das Bild immer den Rahmen verdeckt.
Hat jemand eine Idee wie ich das lösen kann.
Habe nichts gefunden wie ich es in diesem Template bewerkstelligen soll.
Ich denke das es eventuell mit einem StackPanel nicht funktioniert.
Danke für die Hilfe
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <ControlTemplate x:Key="mein Button" TargetType="Button"> <Border Name="myBorder" CornerRadius="20" BorderThickness="5" BorderBrush="Black"> <StackPanel Orientation="Horizontal" Background="Yellow">
<Image Source="Micky.jpg" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> </Image>
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/> </StackPanel> </Border> </ControlTemplate>
<Button Content="klick mich" Template="{StaticResource mein Button}" Width="200" Height="100" Margin="0 0 0 0" Grid.Row="1" Grid.Column="1"/> |
Th69 - Mi 31.05.17 12:27
Hallo,
versuche mal bei dem StackPanel oder Image die Eigenschaft Margin zu setzen (also den linken Rand setzen).
AndreasK - Mi 31.05.17 13:26
Funktioniert leider auch nicht.
Th69 - Mi 31.05.17 13:31
Zeige mal den XAML-Code.
Oder aber probiere mal ein weiteres StackPanel (oder jedes anderes unsichtbare Element) links einzufügen:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8:
| <StackPanel Orientation="Horizontal" Background="Yellow">
<StackPanel Width = "20"/>
<Image Source="Micky.jpg" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/> </StackPanel> |
PS: Statt Margin könntest du auch Padding bei der Border verwenden:
Übersicht über Alignment, Margin und Padding [
https://msdn.microsoft.com/de-de/library/ms751709(v=vs.110).aspx]
AndreasK - Mi 31.05.17 16:49
Hallo
Ich weiß nicht genau ob ich das alles richtig verstehe, aber es geht mir nicht darum das Bild so zurecht zu rücken bis es irgenwie passt sondern
das der Rahmen im Vordergund ist und nicht das das Bild, also der Rahmen sollte das Bild an den Ecken verdecken.
AndreasK - Do 01.06.17 18:28
Hallo
Danke für eure Hilfe, habs geschafft.
OpacityMask ist das Stichwort.
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| <ControlTemplate x:Key="MickyButton" TargetType="Button"> <Border BorderBrush="Black" BorderThickness="2" Background="Yellow" CornerRadius="20" Grid.Column="1"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Border Name="CornersMask" Background="White" CornerRadius="20,0,0,20"/> <Image Source="Micky.jpg" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" > <Image.OpacityMask> <VisualBrush Visual="{Binding ElementName=CornersMask}"/> </Image.OpacityMask> </Image> <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="1"/> </Grid> </Border> </ControlTemplate> |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!