内容控件内的WPF文本块事件未被调用的按钮

时间:2017-04-07 07:28:57

标签: wpf textblock contentcontrol

我有一个简单的按钮,在按钮的contentcontrol标签内有两个文本块元素,如下所示。问题是没有调用textblock控件的mouseup事件。相反,每次单击文本块控件时,都会调用onclick even1t按钮。

<Button>
<ContentControl>
<Textblock x:name="txt1" Text="Tes1-1" MouseLeftButtonUp="txt1_mouseleftbuttonup"/>

<Textblock x:name="txt2" Text="Tes1-1" MouseLeftButtonUp="txt2_mouseleftbuttonup"/>

<ContentControl>

</button>

如果我将contentcontrol标记放在<Button>标记之外,那么事件就会起作用。

2 个答案:

答案 0 :(得分:0)

这不是你可以为TextBlocks启动MouseLeftButtonUp事件处理程序的方法,但它是你在TextBlocks上处理MouseLeftButtonUp事件的方式:

<Button Mouse.PreviewMouseUp="Button_MouseLeftButtonUp">
    <ContentControl>
        <TextBlock Text="TestText" x:Name="txt1"/>
    </ContentControl>
</Button>

private void Button_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    var btn = sender as Button; if (btn == null) return;

    if (btn.InputHitTest(e.GetPosition(btn)) is TextBlock)
    {
        ;//TextBlock MouseUp handler
    }
}

答案 1 :(得分:-1)

处理MouseLeftButton 向下事件:

<Button Click="Button_Click_1">
    <ContentControl>
        <TextBlock x:Name="txt11" Text="test" MouseLeftButtonDown="txt1_mouseleftButtonup"/>
    </ContentControl>
</Button>