题
我想防止当用户单击标题区域内时,扩展器会扩展/崩溃。这基本上是与 Q 1396153, ,但我很感谢一个更有利的答案:)
有没有侵入性的方法?我不确定如何确切地将行为附加到扩展器中。我愿意通过固定的网格布局在扩展器本身之外的内容中浮动,但我不热衷于解决方案。想法?
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>
解决方案
您可以停止在应用程序上处理文本框上的鼠标点击。
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;
}
其他提示
我不知道这是否是可憎的,但是,我已经将内容移出了扩展器。 ...但不是。这有效,但这太可怕了。
不隶属于 StackOverflow