Как я могу проглотить поведение выпадающего внутри Expander.Header? - PullRequest
3 голосов
/ 26 мая 2010

Я бы хотел предотвратить расширение / свертывание Expander, когда пользователи щелкают внутри области заголовка. Это в основном тот же вопрос, что и Q 1396153 , но я был бы признателен за более благоприятный ответ:)

Есть ли неинвазивный способ сделать это? Я не уверен, как именно прикрепить поведение к содержимому Expander.Header, чтобы предотвратить щелчки мышью. Я готов размещать контент вне самого экспандера через фиксированную сетку, но я не заинтересован в решении. Идеи?

XamlPad образец XAML:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Expander>
    <Expander.Header><TextBlock>
        When I click this text, 
        I don't want to trigger expansion/collapse! Only when I click the 
        expander button do I want to trigger an expand/collapse!
    </TextBlock></Expander.Header>

    <Grid Background="Red" Height="100" Width="100" >
    </Grid>
    </Expander>
</Page>

Ответы [ 2 ]

3 голосов
/ 27 мая 2010

Вы можете запретить обработку щелчков мыши в текстовом поле вашим приложением.

XAML:

<Expander>
    <Expander.Header>
        <TextBlock MouseDown="TextBlock_MouseDown"> 
            When I click this text,  
            I don't want to trigger expansion/collapse! Only when I click the  
            expander button do I want to trigger an expand/collapse!
                    </TextBlock>
        </Expander.Header>
    <Grid Background="Red" Height="100" Width="100" >
    </Grid>
</Expander>

Код:

private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}
0 голосов
/ 26 мая 2010

Я не знаю, является ли это мерзостью, но я переместил контент из Expander.Header и сделал несколько хитростей Grid / fixed layout / Panel.ZIndex, чтобы заставить его казаться, что контент находится вExpander.Header ... но это не так.Это работает, но это ужасно.

...