Entwickler-Ecke
WPF / Silverlight - ListBoxItem DataTemplate mit Autosize?
Christoph1972 - Sa 21.12.13 14:40
Titel: ListBoxItem DataTemplate mit Autosize?
Hallo Foris,
ich bastele gerade rum und komme an einer Stelle nicht so recht weiter. Und zwar habe ich für eine ListBox ein ControlTemplate erstellt, in diesem Control befand sich bis vor hin ein Expander, welcher weitere Controls zur Bearbeitung der Daten bereitstellt. Wenn der der Expander expandiert wurde, so vergrößerte sich das ListBoxItem wie erwartet automatisch. An dem Expander hat mich jedoch das Verhalten gestört, das er mit einem Einfachklick expandierte. Also musste ein Expander her der nur auf ein Doppelklick reagiert her. Ich habe mich an diesem Beispiel orientiert:
http://social.msdn.microsoft.com/Forums/vstudio/en-US/9c97474a-c087-4936-a25b-7c61146d297b/double-click-expander-control-header
Bei diesem UserControl ist es leider so, das sich die Größe von dem ListBoxtem leider nicht anpasst. Bis jetzt konnte ich keinen Workaround finden um das zu realisieren.
Hat jemand eine Idee wie ich das ohne Codebehind hinbekomme?
Vielen Dank schon mal!
Christian S. - Sa 21.12.13 15:45
Hallo!
Ich kann das Problem nicht reproduzieren. Ich habe den C#-Quelltext von der verlinkten Seite und folgenden XAML-Quelltext:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70:
| <Window xmlns:WpfApplication1="clr-namespace:WpfApplication1" x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1"> <Style TargetType="{x:Type local:ExpanderEx}" x:Key="ExpanderExStyle"> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> <Setter Property="VerticalContentAlignment" Value="Stretch"/> <Setter Property="BorderBrush" Value="Transparent"/> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:ExpanderEx}"> <Border SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3"> <DockPanel> <ContentControl HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" x:Name="HeaderSite" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" DockPanel.Dock="Top" Content="{TemplateBinding Header}"/> <ContentPresenter Focusable="false" Visibility="Collapsed" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" x:Name="ExpandSite" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" DockPanel.Dock="Bottom"/> </DockPanel> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseDoubleClicked" Value="True"> <Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/> <Setter Property="IsExpanded" Value="True"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary>
</Window.Resources> <Grid> <ListBox> <ListBox.Items> <ListBoxItem> <WpfApplication1:ExpanderEx Style="{DynamicResource ExpanderExStyle}" Header="Mein Expander" IsExpanded="True"> <TextBlock Text="Foobar" /> </WpfApplication1:ExpanderEx> </ListBoxItem> <ListBoxItem> <TextBlock Text="Drunter!" /> </ListBoxItem> </ListBox.Items> </ListBox>
</Grid> </Window> |
Und da wächst das ListBoxItem mit.
Grüße
Christian
Christoph1972 - Sa 21.12.13 21:31
Asche auf mein Haupt :oops: Ich hatte Height für den Expander festgelegt, dann klappt das natürlich nicht. Sorry, aber da bin ich einfach nicht drauf gekommen, ich habe alles unter die Lupe genommen, das habe ich zu spät gesehen :roll: Wie peinlich.....
Trotzdem vielen Dank! Jetzt hole ich mir noch schnell eine Flasche Wein und dann gehts hoffentlich kreativ weiter :wave:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!