Autor Beitrag
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Sa 21.12.13 14:40 
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:

social.msdn.microsof...ander-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!

_________________
Gruß
Christoph
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:
ausblenden volle Höhe 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Christoph1972 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: 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:

_________________
Gruß
Christoph