Hi!
Ich habe ein DataTemplate mit einem clickablen Control
<DataTemplate DataType="{x:Type my:BreathCrumbRoot}">
<ContentControl MouseDown="ChangeFolder" >
<ContentControl.Template>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Root" />
<Path Stroke="#FF272323" StrokeThickness="0.7" Data="m0,0l6,6l-6,6m6,-12l6,6l-6,6"/>
</StackPanel>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
Da habe ich jetzt mit dem Path-Dings eine eigene Zeichnung drangemacht. Allerdings wird das MouseDown nur ausgelöst, wenn man genau die Linie der Zeichnung trifft. (Und "natürlich", wenn man auf den Textblock klickst)
Wie kriegt man das hin, dass man beim Klick irgendwo in dieses ContentControl ein MouseDown erhält?
Der frühe Apfel fängt den Wurm.
Das liegt daran dass WPF die Mauseingaben nur erfasst wenn du auf einem eingefärbten Bereich bist. Setzte mal die Background-Eigenschaft vom StackPanel auf Transparent. Dann solltest du die Mauseingaben erhalten.
danke für den tip - geht tatsächlich, mussichmir merken.
Ich hab jetzt aber eine lsg gefunden, wo ich den Path in den textblock hineinmale:
<DataTemplate DataType="{x:Type my:BreathCrumbRoot}">
<TextBlock MouseDown="ChangeFolder" Text="Root" Margin="15,0" >
<InlineUIContainer BaselineAlignment="Center">
<Path Stroke="#FF272323" StrokeThickness="0.7" Data="m6,0l6,6l-6,6m6,-12l6,6l-6,6" />
</InlineUIContainer>
</TextBlock>
</DataTemplate>
Der frühe Apfel fängt den Wurm.